あなたが別のstackoverflowのページに私をリダイレクトする前に、私はPOSタグ付けを高速化に関するいくつかの質問があります知っているので、私はすでにを通じて閲覧、ここで提案して私のコードをスピードアップしました:Slow performance of POS tagging. Can I do some kind of pre-warming?遅いPOSタグ付けを高速化するには?
私は、Pythonを使用しています3.6。 nltkを使ってトークン化された〜100,000語を含むリストがあります。これらはかなり重いリストなので、これらの言葉のすべてをタグ付けすることは本質的にある程度時間がかかることを私は知っています。次のように私は、外で鬼をロードした:このステップを取る
def tag_wordList(tokenizedWordList):
from nltk.tag.perceptron import PerceptronTagger
tagger=PerceptronTagger() # load outside
for words in tokenizedWordList:
taggedList = tagger.tag(tokenizedWordList) # add POS to words
return taggedList
は、かなりの量を、物事をスピードアップしましたが、10万の以上の言葉を通じて、それはまだ1.5時間以上を取って取得する(そしてそれはまだ実行しています)。コードは、より小さなデータセットで正常に動作します。私は良い点で再試行するつもりだが、リストをあまり改善することなく、ある時点でセットに変換しようとしたと思う。誰でも効率を改善するためのヒントはありますか?
spacyを強くお勧めします。とにかく 'tagger.tag'に完全なリストを渡しているのなら、なぜforループを持っていますか?https://spacy.io/docs/api/ – mbatchkarov
これはNLTKほど高速です。 – entrophy
@entrophy良いキャッチ!私は今まで気付かずにそれを修正しました。ありがとう! –