7
現在、言語処理にNLTKを使用していますが、文章トークンの問題が発生しました。NLTKの文章トークナイザを略語で分割するのを避けるには?
ここに問題があります: 「図2は米国地図です」という文があるとします。 私はPUNKTトークナイザを使用すると、私のコードは次のようになります。
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.')
それは、これを返します。
['Fig. 2 shows a U.S.A.', 'map.']
トークナイザは略語「USA」を検出することはできませんが、それは「図」で働いていました。 今私はNLTKトークナイザデフォルトを使用する場合提供:
import nltk
nltk.tokenize.sent_tokenize('Fig. 2 shows a U.S.A. map.')
私が手にこの時間を:
['Fig.', '2 shows a U.S.A. map.']
それはより一般的な "U.S.A." を認識し、 "イチジク"が見えない!
これら2つの方法を組み合わせるにはどうすればよいですか?私は自分の略語を追加するだけでなく、デフォルトの省略形の選択肢を使用したいと思います。
うわーそんなにありがとう!それは本当に便利です! –