Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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中添加停止词_Python_Windows_Nlp_Gensim_Stop Words - Fatal编程技术网

Python 在Gensim中添加停止词

Python 在Gensim中添加停止词,python,windows,nlp,gensim,stop-words,Python,Windows,Nlp,Gensim,Stop Words,谢谢你过来!我有一个关于附加停止词的快速问题。我在数据集中选择了几个单词,我想我可以把它们添加到gensims停止词列表中。我已经看到了很多使用nltk的例子,我希望在gensim中也有同样的方法。我将在下面发布我的代码: def预处理文本: 结果=[] 对于gensim.utils.simple\u预处理文本中的令牌: 如果令牌不在gensim.parsing.preprocessing.STOPWORDS和lentoken>3中: nltk.bigramstoken result.appe

谢谢你过来!我有一个关于附加停止词的快速问题。我在数据集中选择了几个单词,我想我可以把它们添加到gensims停止词列表中。我已经看到了很多使用nltk的例子,我希望在gensim中也有同样的方法。我将在下面发布我的代码:

def预处理文本: 结果=[] 对于gensim.utils.simple\u预处理文本中的令牌: 如果令牌不在gensim.parsing.preprocessing.STOPWORDS和lentoken>3中: nltk.bigramstoken result.appendlemmatize_stemingtoken 返回结果当gensim.parsing.preprocessing.STOPWORDS是为方便您而预定义的,并且恰好是一个冻结集,因此无法直接添加到其中时,您可以轻松创建一个更大的集合,其中包括这些单词和添加的内容。例如:

从gensim.parsing.preprocessing导入停止字 my_stop_words=STOPWORDS.unionset['mystopword1','mystopword2'] 然后在后续的停止字删除代码中使用新的、更大的my_停止字。gensim的simple_preprocess函数不会自动删除停止字。

而gensim.parsing.preprocessing.STOPWORDS是为方便您而预定义的,并且恰好是一个冻结集,因此无法直接添加到其中,您可以轻松创建一个包含这些字和添加内容的较大集合。例如:

从gensim.parsing.preprocessing导入停止字 my_stop_words=STOPWORDS.unionset['mystopword1','mystopword2'] 然后在后续的停止字删除代码中使用新的、更大的my_停止字。gensim的简单预处理功能不会自动删除停止字。

def预处理文本: 结果=[] 对于gensim.utils.simple\u预处理文本中的令牌: newStopWords=['stopword1','stopword2'] 如果令牌不在gensim.parsing.preprocessing.STOPWORDS中,且令牌不在newStopWords和lentoken>3中: nltk.bigramstoken result.appendlemmatize_stemingtoken 返回结果 def预处理文本: 结果=[] 对于gensim.utils.simple\u预处理文本中的令牌: newStopWords=['stopword1','stopword2'] 如果令牌不在gensim.parsing.preprocessing.STOPWORDS中,且令牌不在newStopWords和lentoken>3中: nltk.bigramstoken result.appendlemmatize_stemingtoken
return resultDoing两个not-in tests token not-in gensim.parsing.preprocessing.STOPWORDS和token not-in newStopWords,第二个是针对一个需要线性探测的列表,这比创建自己的所有停止词的超集(如我的回答中所述)效率要低,然后针对它执行一个not-in测试。集合测试中的成员资格是最有效的,通常情况下,对于较大的集合,成员资格不会降低效率,而是针对列表的多个测试或探测,将随着更多and或列表项的添加而减慢。按照我的回答中所述,在需要线性探测的列表中执行两个not in tests token not in gensim.parsing.preprocessing.STOPWORDS和token not in newStopWords,而第二个token not in token not in newStopWords的效率将低于创建自己的所有停止词的超集,然后做了一个单独的不在测试。集合测试中的成员资格是最有效的,通常情况下,对较大集合的测试效率不会降低,但多个测试或对列表的探测会随着更多and或列表项的添加而降低。谢谢,这是否适用于Gensim remove_stopwords函数?否,因为remove_stopwords函数不接受任何参数,只接受一个甚至没有标记的字符串,并且只使用内置的、冻结的stopwords集。但在大多数情况下,您可能不想使用gensim.parsing.processing.remove_停止词,尤其是在您有自己的停止词自定义列表的情况下。它在空白处拆分,然后重新连接字符串,大多数标记化/预处理工作流将希望将文本作为标记列表保留更长时间,甚至保留到所有培训/分析结束。该函数只有两行-并且一旦使用自定义的stopwords集,可能还有其他自定义步骤,如果您在自己的显式代码中执行词干分析或柠檬化等操作,您将希望控制拆分和标记过滤,以及可能的其他标记规范化。谢谢。我在脚本中添加了一个自定义函数。到目前为止,Gensim的remove_stopwords的结果对我来说很好。谢谢,这会与Gensim remove_stopwords函数一起工作吗?不会,因为remove_stopwords函数除了不带符号的字符串之外不接受任何参数,只使用内置的、冻结的stopwords集。但在大多数情况下,您可能不想使用gensim.parsing.processing.remove_停止词,尤其是在您有自己的停止词自定义列表的情况下。它都在空白处拆分,然后重新连接字符串,大多数标记化/预处理工作流都希望将文本保持为lis
t-of-tokens的使用时间更长,甚至可以持续到所有培训/分析结束。该函数只有2行-一旦您使用自定义的stopwords集&可能是其他自定义步骤,您就需要控制拆分和标记过滤,如果您正在进行词干分析或柠檬化,可能还需要控制其他标记规范化,你自己在自己的显式代码中。谢谢。我在脚本中添加了一个自定义函数。到目前为止,Gensim的remove_stopwords的结果对我来说还不错。