Ich verwende derzeit NLTK für die Sprachverarbeitung, aber ich habe ein Problem der Satz-Tokenisierung festgestellt.Wie vermeidet man, dass NLTK den Satztokenizer auf Abkürzungen spaltet?
Hier ist das Problem: Angenommen, ich habe einen Satz: "Abb. 2 zeigt eine USA-Karte." Als ich punkt tokenizer verwenden, sieht mein Code wie folgt aus:
from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
punkt_param = PunktParameters()
abbreviation = ['U.S.A', 'fig']
punkt_param.abbrev_types = set(abbreviation)
tokenizer = PunktSentenceTokenizer(punkt_param)
tokenizer.tokenize('Fig. 2 shows a U.S.A. map.')
Es gibt diese:
['Fig. 2 shows a U.S.A.', 'map.']
Die tokenizer kann die Abkürzung "USA" nicht erkennen, aber es auf "Bild" gearbeitet . Jetzt wenn ich die Standard verwenden tokenizer NLTK bietet:
import nltk
nltk.tokenize.sent_tokenize('Fig. 2 shows a U.S.A. map.')
Diesmal bekomme ich:
['Fig.', '2 shows a U.S.A. map.']
Er erkennt die häufiger "USA" sieht aber nicht "feige"!
Wie kann ich diese beiden Methoden kombinieren? Ich möchte Standardabkürzungswahlen verwenden sowie meine eigenen Abkürzungen hinzufügen.
Wow vielen Dank! Das ist sehr hilfreich! –