【问题标题】:How to train a word embedding representation with gensim fasttext wrapper?如何使用 gensim fasttext wrapper 训练词嵌入表示?
【发布时间】:2019-11-23 18:59:54
【问题描述】:

我想用 fastext 训练我自己的词嵌入。但是,在遵循教程之后,我无法正确地做到这一点。到目前为止,我尝试过:

在:

from gensim.models.fasttext import FastText as FT_gensim

# Set file names for train and test data
corpus = df['sentences'].values.tolist()

model_gensim = FT_gensim(size=100)

# build the vocabulary
model_gensim.build_vocab(sentences=corpus)
model_gensim

输出:

<gensim.models.fasttext.FastText at 0x7f6087cc70f0>

在:

# train the model
model_gensim.train(
    sentences = corpus, 
    epochs = model_gensim.epochs,
    total_examples = model_gensim.corpus_count, 
    total_words = model_gensim.corpus_total_words
)

print(model_gensim)

输出:

FastText(vocab=107, size=100, alpha=0.025)

但是,当我尝试查看词汇时:

print('return' in model_gensim.wv.vocab)

我得到False,即使这个词出现在我传递给快速文本模型的句子中。此外,当我检查要返回的最相似的单词时,我得到了字符:

model_gensim.most_similar("return")

[('R', 0.15871645510196686),
 ('2', 0.08545402437448502),
 ('i', 0.08142799884080887),
 ('b', 0.07969795912504196),
 ('a', 0.05666942521929741),
 ('w', 0.03705815598368645),
 ('c', 0.032348938286304474),
 ('y', 0.0319858118891716),
 ('o', 0.027745068073272705),
 ('p', 0.026891689747571945)]

gensim的fasttext wrapper的正确使用方法是什么?

【问题讨论】:

  • 对我来说,df['sentences'] 似乎有问题,您如何将句子转换为标记并将其保存在列表中?

标签: machine-learning nlp gensim word-embedding fasttext


【解决方案1】:

gensim FastText 类不将纯字符串作为其训练文本。相反,它需要单词列表。如果您传递纯字符串,它们将看起来像单字符列表,并且您会得到一个像您所看到的那样发育不良的词汇表。

corpus 的每个项目标记为单词标记列表,您将获得更接近预期的结果。一种超级简单的方法可能就是:

corpus = [s.split() for s in corpus]

但是,通常您还想做其他事情来正确标记纯文本 - 可能是大小写扁平化,或者使用标点符号做其他事情等。

【讨论】:

    【解决方案2】:

    为了查看词汇,应将词汇写入文本文件,以便在该文本文件中可见。 This 可能对你有帮助:

    with open("vocab.txt", "w", encoding="utf8") as vocab_out:
        for word in model_gensim.wv.vocab:
            vocab_out.write(word + "\n")
    

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 2019-04-08
      • 2018-11-11
      • 1970-01-01
      相关资源
      最近更新 更多