【问题标题】:Sklearn tf-idf TfidfVectorizer failed to capture one letter wordssklearn tf-idf TfidfVectorizer 捕获一个字母单词失败
【发布时间】: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)

【问题讨论】:

  • 还有其他例句吗?否则,您可以去掉标点符号,将其作为一个单词处理。

标签: python-3.x scikit-learn nlp tf-idf tfidfvectorizer


【解决方案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 是的,你是对的,技术错误,已更正
猜你喜欢
  • 2019-08-13
  • 2017-12-27
  • 2020-06-06
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2018-03-23
  • 2015-11-22
相关资源
最近更新 更多