私はnltk
を使用して、指定されたストップワードを最初に削除して文からnグラムを生成しています。しかし、nltk.pos_tag()
は、CPU(Intel i7)で0.6秒という非常に遅いです。POS-Taggerは非常に遅いです
出力:
['The first time I went, and was completely taken by the live jazz band and atmosphere, I ordered the Lobster Cobb Salad.']
0.620481014252
["It's simply the best meal in NYC."]
0.640982151031
['You cannot go wrong at the Red Eye Grill.']
0.644664049149
コード:
for sentence in source:
nltk_ngrams = None
if stop_words is not None:
start = time.time()
sentence_pos = nltk.pos_tag(word_tokenize(sentence))
print time.time() - start
filtered_words = [word for (word, pos) in sentence_pos if pos not in stop_words]
else:
filtered_words = ngrams(sentence.split(), n)
が、これは本当に遅いですか、私はここで何か間違ったことをやっていますか?複数の文をタグ付けするための
あなたはそのテキストを投稿することができますあなたは入力がありますか?あなたのマシンの仕様(CPUの速度とRAM)は何ですか?あなたはクラウドに接続していますか、どのように機能をタイミングしていますか?また、http://stackoverflow.com/questions/33558836/pos-tagging-using-nltk-takes-time – alvas
@alvasを参照してくださいそれは、Intel i7(質問に記載)です。 16GBのRAM。いいえ、それは雲の中にローカルではありません。私のコード例で、私がどのように時間を計測しているかを見ることができます。 – displayname
巨大なデータセットがある場合は、ソリューションを並列化する必要があります。それ以外の場合(タグ付きの文章をRAMに保存することができれば)、すべてのタグ付き文章を収集してから、後でフィルタを実行するだけです。 – alvas