下面的代码片段是我在这教程的帮助下创建的,用于无监督的情感分析目的:
sent = [row for row in file_model.message]
phrases = Phrases(sent, min_count=1, progress_per=50000)
bigram = Phraser(phrases)
sentences = bigram[sent]
sentences[1]
file_export = file_model.copy()
file_export['old_message'] = file_export.message
file_export.old_message = file_export.old_message.str.join(' ')
file_export.message = file_export.message.apply(lambda x: ' '.join(bigram[x]))
file_export.to_csv('cleaned_dataset.csv', index=False)既然我现在想要有大图和曲线图,我就尝试将它调整为:
sent = [row for row in file_model.message]
phrases = Phrases(sent, min_count=1, progress_per=50000)
bigram = Phraser(phrases)
trigram = Phraser(bigram[phrases])
sentences = trigram[sent]
sentences[1]
file_export = file_model.copy()
file_export['old_message'] = file_export.message
file_export.old_message = file_export.old_message.str.join(' ')
file_export.message = file_export.message.apply(lambda x: ' '.join(trigram[x]))
file_export.to_csv('cleaned_dataset.csv', index=False)但是当我运行这个程序时,我得到了TypeError: 'int' object is not iterable,我认为它指的是我对trigram = Phraser(bigram[phrases])的调整。我正在使用gensim 4.1.2。不幸的是,我没有计算机科学背景,我在网上找到的解决方案也帮不上忙。
发布于 2022-04-18 23:05:51
通常情况下,最好在问题中(必要时稍后编辑)包含所收到的整个多行错误消息,包括任何显示文件名、行号和源代码行的“跟踪”。这有助于潜在的答案者专注于事情到底出了什么问题。
另外,请注意,'towardsdatascience.com‘的许多教程质量很差。我看不到您在没有注册的情况下链接的确切内容(我宁愿不注册),但是从您的代码摘录中,我已经看到了一些严重程度不同的问题:
Phrases算法,将短语组合成比二进制数更长的短语,那么您就不能重复使用为bigram训练的模型。你需要为每一个新的组合,在先前模型的输出上训练一个新的模型。也就是说,对三角图Phrases模型的输入(必须经过训练)必须是应用双图模型的结果,因此它看到了原始的单位图&现在组合的二进制图的混合。min_count=1很容易适得其反。他们的统计方法需要很多例子来做合理的事情;抛弃最罕见的词通常有助于加快处理,缩小模型,主要是在有足够的例子来做一些可能合理的事情的标记上工作。(对于很少或只有1个使用示例,结果可能看起来有些随机/任意。)Phraser实用类已经改名为FrozenPhrases --它只是为了对Phrases模型进行一些优化,当您确定您已经完成了培训/调优时。(旧的名称仍然有效,但这表明教程最近还没有刷新。)一般来说,请注意:如果没有大量的数据,任何数量的Phrases应用程序的输出可能都不会很强。而且在任何情况下,人类的情感都不可能“看得对”--因为它是纯粹的统计和共现驱动的。(不过,即使它的输出看起来很奇怪,它有时也会在某些信息检索/分类任务上有所帮助,因为它成功地创建了一些有用的新特性,而这些特性与单一的单元图不同。)
我的建议是:
Phrases组合,这样您就可以比较结果&看看是否有帮助。Phrases。(不幸的是,我在当前的Gensim文档中找不到两级Phrases使用的示例--我认为一些旧的示例在文档简化工作中被编辑掉了。但是有几个例子表明,在该项目的测试源代码中没有完全错误地使用它--搜索文件phrases.py以获取trigram。但请记住,这些也不是最佳实践,因为它们是专注的最小测试。)
https://stackoverflow.com/questions/71914383
复制相似问题