Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解释gensim word2vec输出?_Python_Nlp_Gensim_Word2vec_Word Embedding - Fatal编程技术网

Python 如何解释gensim word2vec输出?

Python 如何解释gensim word2vec输出?,python,nlp,gensim,word2vec,word-embedding,Python,Nlp,Gensim,Word2vec,Word Embedding,我运行下面的代码,只是想知道为什么“曝光”的前三个最相似的词不包括“收费”和“贷款” word2vec算法仅在大量训练数据中有用且有价值,其中每个感兴趣的单词都有各种现实的、微妙对比的用法示例 玩具大小的数据集不会显示其值。设置min\u count=1总是一个坏主意。而且,试图从一个只有9个单词、9个独特单词以及大多数单词有完全相同的邻居的语料库中训练300维单词向量是毫无意义的 在一个更真实的数据集上尝试它——数万个独特的单词,都有多个使用示例——你会看到更直观的正确相似性结果。word2v

我运行下面的代码,只是想知道为什么“曝光”的前三个最相似的词不包括“收费”和“贷款”


word2vec算法仅在大量训练数据中有用且有价值,其中每个感兴趣的单词都有各种现实的、微妙对比的用法示例

玩具大小的数据集不会显示其值。设置
min\u count=1总是一个坏主意。而且,试图从一个只有9个单词、9个独特单词以及大多数单词有完全相同的邻居的语料库中训练300维单词向量是毫无意义的


在一个更真实的数据集上尝试它——数万个独特的单词,都有多个使用示例——你会看到更直观的正确相似性结果。

word2vec算法只在大量训练数据中有用且有价值,其中每个感兴趣的单词都有各种真实的,微妙对比的用法示例

玩具大小的数据集不会显示其值。设置
min\u count=1总是一个坏主意。而且,试图从一个只有9个单词、9个独特单词以及大多数单词有完全相同的邻居的语料库中训练300维单词向量是毫无意义的


在一个更真实的数据集上尝试它——数万个独特的单词,都有多个使用示例——你会看到更直观的相似性结果。

如何确定最小计数的值?如果可能,至少坚持默认的
min\u计数=5
。随着语料库越来越大,尝试更高的值,以缩小最终模型的RAM大小和训练时间。在某些情况下,您可能会发现
min_count
的值更高,从而提高了基于任务的最终模型质量评估的真实性。评估应根据您使用word2vec的特定目的进行。理想情况下,为了您的预期用途,您需要建立一些预期/期望结果的初始集,并根据它们满足这些探测的程度来测试模型——理想情况下,这些模型是其他未测试案例的代表集。随着时间的推移,随着复杂的新案例的出现,评估的增长是很典型的——当你意识到早期的/特别的东西并没有涵盖所有重要的案例时。有一些常用的词向量的相似性排序或类比解算标准评估——但它们非常狭窄。例如,许多与word2vec相关的论文都使用了一组与word2vec原始论文类似的
question words.txt
,Gensim在该方法中支持这一点:-但在普通分类或信息检索任务中得分最高的词向量可能会做得更差!所以,通常最好使用自己的评估。向量大小没有硬性规定,但通常较大的训练数据和较大的词汇表支持较大的向量。非常粗略地说,我不认为向量大小应该比词汇表中唯一单词数量的平方根大很多。因此,我不会尝试用少于10000个单词的词汇表来创建100维向量(每个都有许多使用示例),通常300-400美元的维度应该由100k-150k单词或更多的独特词汇表来支持。(300维
GoogleNews
向量用于300万个唯一单词的词汇表。)如何确定最小计数的值?如果可能,至少使用默认值
min\u count=5
。随着语料库越来越大,尝试更高的值,以缩小最终模型的RAM大小和训练时间。在某些情况下,您可能会发现
min_count
的值更高,从而提高了基于任务的最终模型质量评估的真实性。评估应根据您使用word2vec的特定目的进行。理想情况下,为了您的预期用途,您需要建立一些预期/期望结果的初始集,并根据它们满足这些探测的程度来测试模型——理想情况下,这些模型是其他未测试案例的代表集。随着时间的推移,随着复杂的新案例的出现,评估的增长是很典型的——当你意识到早期的/特别的东西并没有涵盖所有重要的案例时。有一些常用的词向量的相似性排序或类比解算标准评估——但它们非常狭窄。例如,许多与word2vec相关的论文都使用了一组与word2vec原始论文类似的
question words.txt
,Gensim在该方法中支持这一点:-但在普通分类或信息检索任务中得分最高的词向量可能会做得更差!所以,通常最好使用自己的评估。向量大小没有硬性规定,但通常较大的训练数据和较大的词汇表支持较大的向量。非常粗略地说,我不认为向量大小应该比词汇表中唯一单词数量的平方根大很多。因此,我不会尝试用少于10000个单词的词汇表来创建100维向量(每个都有许多使用示例),通常300-400美元的维度应该由100k-150k单词或更多的独特词汇表来支持。(300维
GoogleNews
向量用于300万个独特单词的词汇表。)
from gensim.models import Word2Vec
corpus = [['total', 'exposure', 'charge', 'lend'],
          ['customer', 'paydown', 'rate', 'months', 'month']]
gens_mod = Word2Vec(corpus, min_count=1, vector_size=300, window=2, sg=1, workers=1, seed=1)
keyword="exposure"
gens_mod.wv.most_similar(keyword)

Output:
[('customer', 0.12233059108257294),
 ('month', 0.008674687705934048),
 ('total', -0.011738087050616741),
 ('rate', -0.03600010275840759),
 ('months', -0.04291829466819763),
 ('paydown', -0.044823747128248215),
 ('lend', -0.05356598272919655),
 ('charge', -0.07367636263370514)]