我有一个文件夹,里面有很多关于旅游评论的.txt文档。我想使用词袋模型方法将它们转换为某种数值表示,以便在C++中进行机器学习(潜在 Dirichlet 分配 – LDA)训练系统识别每个文档的主题。
但不知为何,我不知道如何处理词袋算法,我听说过像Scikit-learn这样的工具,但Scikit-learn是在Python环境中运行的。我想知道,是否有推荐的工具/库可以帮助我解决词袋模型的问题?或者是否有Scikit-learn的C++包装器?
我已经到了不知道该怎么办的地步,任何指导都会被感激的。谢谢你:)
回答:
嗯……这应该很容易编写代码吧?
最笨但肯定能用的方法是遍历所有文档两次。在第一次遍历时,创建一个单词和唯一索引的哈希映射(类似于HashMap的结构),在第二次遍历时,进行表查找并打印单词的索引,以创建数据的数值表示。
如果你想要词袋表示,在第二次遍历时,每次看到一个新文档时,你可以创建一个哈希映射(HashMap),并增加每个单词索引的计数,一旦到达文档的末尾,你读取计数,并打印它们。