コーパスから一般的なフレーズを超越することを計画していましたが、このためにフレーズモデルをgensimで使用しようとしましたが、以下のコードを試しました。gensimを使用してコーパスからフレーズを抽出する方法
私のコード
from gensim.models import Phrases
documents = ["the mayor of new york was there", "machine learning can be useful sometimes"]
sentence_stream = [doc.split(" ") for doc in documents]
bigram = Phrases(sentence_stream)
sent = [u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
print(bigram[sent])
出力
[u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
しかし、それは
[u'the', u'mayor', u'of', u'new_york', u'was', u'there']
として来るべきではない。しかし、私はトンをしようとしたとき列車データの印刷ボキャブ、私はbigramを見ることができますが、私は間違っているテストデータで動作しない?私は問題の解決策を持って
print bigram.vocab
defaultdict(<type 'int'>, {'useful': 1, 'was_there': 1, 'learning_can': 1, 'learning': 1, 'of_new': 1, 'can_be': 1, 'mayor': 1, 'there': 1, 'machine': 1, 'new': 1, 'was': 1, 'useful_sometimes': 1, 'be': 1, 'mayor_of': 1, 'york_was': 1, 'york': 1, 'machine_learning': 1, 'the_mayor': 1, 'new_york': 1, 'of': 1, 'sometimes': 1, 'can': 1, 'be_useful': 1, 'the': 1})
あなたよりも貴重な答えのためです。しかし、この例では、bigramは "machine"、 "learning"を "machine_learning"としてキャッチしません。なぜそれが起こるか知っていますか? –
トレーニングの前に文章に「機械学習」を2回追加した後、それを送信変数に追加すると、「machine_learning」が表示されます。そのペアの周波数が見えない場合は直感的に分かりません。 – ethanenglish