sklearn tf-idf TfidfVectorizer 捕获一个字母单词失败
Posted
技术标签:
【中文标题】sklearn tf-idf TfidfVectorizer 捕获一个字母单词失败【英文标题】:Sklearn tf-idf TfidfVectorizer failed to capture one letter words 【发布时间】:2021-02-13 04:37:30 【问题描述】:一个特定的实例是"Queens Stop 'N' Swap"
。改造后,我只得到了三个特征['Queens', 'Stop', 'SWap']
。 'N'
已被忽略。如何捕获'N'
?。所有参数都是我代码中的默认设置。
### Create the vectorizer method
tfidf_vec = TfidfVectorizer()
### Transform the text into tf-iwine vectors
text_tfidf = tfidf_vec.fit_transform(title_text)
【问题讨论】:
还有其他例句吗?否则,您可以去掉标点符号,将其作为一个单词处理。 【参考方案1】:您没有将 'n'
作为令牌,因为默认标记器不将其视为令牌:
from sklearn.feature_extraction.text import TfidfVectorizer
texts = ["Queens Stop 'N' Swap",]
tfidf = TfidfVectorizer(token_pattern='(?u)\\b\\w\\w+\\b',)
tfidf.fit(texts)
tfidf.vocabulary_
'queens': 0, 'stop': 1, 'swap': 2
要捕获 1 个字母的标记,并保留大写,请将其更改为:
tfidf = TfidfVectorizer(token_pattern='(?u)\\b\\w+\\b',lowercase=False)
tfidf.fit(texts)
tfidf.vocabulary_
'Queens': 1, 'stop': 2, 'N': 0, 'swap': 3
【讨论】:
不应该将Queens
捕获为Queens
而不是'queens'
,因为您关闭了小写字母?
@NomardicRoku 是的,你是对的,技术错误,已更正以上是关于sklearn tf-idf TfidfVectorizer 捕获一个字母单词失败的主要内容,如果未能解决你的问题,请参考以下文章
sklearn : TFIDF Transformer : 如何获取文档中给定单词的 tf-idf 值