我有一本字典,上面有单词和每个单词的频率。在
{'cxampphtdocsemployeesphp': 1,
'emptiness': 1,
'encodingundefinedconversionerror': 1,
'msbuildexe': 2,
'e5': 1,
'lnk4049': 1,
'specifierqualifierlist': 2, .... }
现在我想用这个字典创建一个单词包模型(我不想使用标准库和函数。我想用这个算法来应用它。)
我有我的文本,我将使用一个函数来创建向量。在
函数应该是这样的
^{pr2}$任何帮助应用这将是非常有帮助的。我使用python实现。在
谢谢
尼尔
你需要首先计算每个词的词库频率,并将它们保存在频率字典中。假设cherry碰巧在你的语料库中出现了78次,你需要保持。然后按频率值降序对频率字典进行排序,然后保留前N对。在
然后,对于枚举,您可以保留一个字典作为索引。例如,cherry>;term2用于索引字典。在
现在,需要准备一个关联矩阵。它将是文档的载体,如下所示:
语料库中的每个文档(文本、标题、句子)都需要有一个id或索引以及上面列出的内容。现在是为文档创建向量的时候了。遍历文档并通过标记化来获取术语,每个文档都有标记。迭代令牌,检查下一个令牌是否存在于频率字典中。如果为真,请使用索引字典和频率字典更新零向量。在
假设doc5有cherry,我们在前N个流行术语中有cherry。得到它的频率(78)和指数(第5项)。现在更新doc5的零向量:
^{pr2}$您需要针对语料库中每个文档的所有流行术语对每个标记执行此操作。在
最后,您将得到一个NxM矩阵,其中包含您的语料库中M个文档的向量。在
我可以建议你看看我的书。https://nlp.stanford.edu/IR-book/information-retrieval-book.html
你可能会考虑使用基于tf-idf的矩阵,而不是他们所建议的基于语料库频率的术语关联矩阵。在
希望这个帖子有帮助
干杯
我做了我的研究,并希望分享我的答案!在
我的数据看起来像这样,已经存储在一个列表中:
接下来我计算了列表中每个单词的频率
^{pr2}$因此,我的单词数字典将包含我的数据表中的所有单词及其频率。 它看起来像这样
现在对于我们的my_bag_of_word函数,我需要按降序对单词进行排序并为每个单词分配索引。在
现在我们的单词“从”到“u”的索引如下所示:
现在我们终于可以用我们创建的字典得到文本的向量
这是一个学习和理解这个概念的好方法。谢谢大家的帮助和支持。在
快乐学习
尼尔
相关问题 更多 >
编程相关推荐