所以我有一个数据集,我想删除使用的停止词
stopwords.words('english')
Run Code Online (Sandbox Code Playgroud)
我正在努力如何在我的代码中使用它只是简单地取出这些单词.我已经有了这个数据集中的单词列表,我正在努力的部分是与此列表进行比较并删除停用词.任何帮助表示赞赏.
我试图通过使用nltk工具包删除停用词来处理用户输入的文本,但是使用停用词删除时,会删除"and","或","not"等字样.我希望在禁用词删除过程之后出现这些单词,因为它们是稍后将文本作为查询处理所需的运算符.我不知道哪些是文本查询中可以成为运算符的单词,我还想从文本中删除不必要的单词.
我正在尝试启动一个情绪分析项目,我将使用停用词方法.我做了一些研究,我发现nltk有停用词,但是当我执行命令时出现错误.
我所做的是以下内容,以便了解nltk使用的单词(就像你在http://www.nltk.org/book/ch02.html第 4.1节中找到的那样):
from nltk.corpus import stopwords
stopwords.words('english')
Run Code Online (Sandbox Code Playgroud)
但当我按下回车时,我获得了
---------------------------------------------------------------------------
LookupError Traceback (most recent call last)
<ipython-input-6-ff9cd17f22b2> in <module>()
----> 1 stopwords.words('english')
C:\Users\Usuario\Anaconda\lib\site-packages\nltk\corpus\util.pyc in __getattr__(self, attr)
66
67 def __getattr__(self, attr):
---> 68 self.__load()
69 # This looks circular, but its not, since __load() changes our
70 # __class__ to something new:
C:\Users\Usuario\Anaconda\lib\site-packages\nltk\corpus\util.pyc in __load(self)
54 except LookupError, e:
55 try: root = nltk.data.find('corpora/%s' % zip_name)
---> 56 except LookupError: raise e
57
58 # Load the corpus.
LookupError: …
Run Code Online (Sandbox Code Playgroud) 我试图从一串文本中删除停用词:
from nltk.corpus import stopwords
text = 'hello bye the the hi'
text = ' '.join([word for word in text.split() if word not in (stopwords.words('english'))])
Run Code Online (Sandbox Code Playgroud)
我正在处理6密耳的这种弦,所以速度很重要.分析我的代码,最慢的部分是上面的行,有没有更好的方法来做到这一点?我正在考虑使用像正则表达式这样的东西,re.sub
但我不知道如何为一组单词编写模式.有人可以帮助我,我也很高兴听到其他可能更快的方法.
注意:我试过有人建议包装stopwords.words('english')
,set()
但没有区别.
谢谢.
使用spacy添加/删除停用词的最佳方法是什么?我正在使用token.is_stop
函数,并希望对集合进行一些自定义更改.我正在查看文档,但找不到关于停用词的任何内容.谢谢!
我找到一个很好的解决方案有点困难:
假设我有一个"公司"表,其中有一个名为"名称"的列.我在这个专栏上有一个全文目录.如果用户搜索"非常好的公司",我的查询将是:
SELECT
*
FROM
Company
WHERE
CONTAINS(Name, '"Very" AND "Good" AND "Company"')
Run Code Online (Sandbox Code Playgroud)
问题在于此示例中,"非常"一词出现在标准的停用词列表中:
SELECT
ssw.*
FROM
sys.fulltext_system_stopwords ssw
WHERE
ssw.language_id = 1033;
Run Code Online (Sandbox Code Playgroud)
导致返回没有行的查询,即使有一行名为"Very Good Company".
我的问题是,如何为我的查询关闭停用词?或者我将如何完全删除它们?
或者我是否应该采用另一种方式进行此搜索?
Scikit-learn的CountVectorizer类允许您将字符串'english'传递给参数stop_words.我想在此预定义列表中添加一些内容.谁能告诉我怎么做?
Lucene有一个默认的stopfilter(http://lucene.apache.org/core/4_0_0/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html),有谁知道列表中哪些是单词?
我正在为一些英语文本生成一些统计数据,我想跳过一些不感兴趣的词,比如"a"和"the".
更新:这些显然被称为"停止词"而不是"跳过词".
我正在寻找一个类或方法,它需要长达100多个单词和标记的字符串,删除用于IR系统的停用词和词干.
例如:
"那只肥胖的大猫,'我知道'你最有趣的家伙'给袋鼠......"
标记器将删除标点符号并返回ArrayList
单词
停用词删除器会删除"the","to"等字样
词干将减少每个词的"根",例如"最有趣"会变得有趣
提前谢谢了.