TF-IDF 和文本块
TF-IDF and text chunks
我是 NLP 的初学者,我正在使用 TF-IDF 方法应用 ML 模型。如果我有这样的数据集
dataset = ['I have three cars', 'and one motorbike']
哪个是应用 TF-IDF 的正确方法(A 或 B),为什么?
选项 1
Tfidf_vect = TfidfVectorizer(max_features=100000, ngram_range = (1,2))
Tfidf_vect.fit(dataset)
选项 2
for d in dataset:
Tfidf_vect2 = TfidfVectorizer(max_features=100000, ngram_range = (1,2))
Tfidf_vect2.fit(d)
此外,选项 2 不起作用,我不明白为什么。请帮助我。
TL;DR;正确的方法是选项 1(A)。
应用 TFIDF Vectorizer 的正确方法是使用文本语料库:
An iterable which yields either str, unicode or file objects.
根据the docs,你必须通过你的案例数组。
以及来自 Scikit-learn 文档的示例:
>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> corpus = [
... 'This is the first document.',
... 'This document is the second document.',
... 'And this is the third one.',
... 'Is this the first document?',
... ]
>>> vectorizer = TfidfVectorizer()
>>> X = vectorizer.fit_transform(corpus)
>>> print(vectorizer.get_feature_names())
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
>>> print(X.shape)
(4, 9)
选项1正确。 Fit 方法需要一个示例列表。检查这个:https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html#sklearn.feature_extraction.text.TfidfVectorizer.fit
我是 NLP 的初学者,我正在使用 TF-IDF 方法应用 ML 模型。如果我有这样的数据集
dataset = ['I have three cars', 'and one motorbike']
哪个是应用 TF-IDF 的正确方法(A 或 B),为什么?
选项 1
Tfidf_vect = TfidfVectorizer(max_features=100000, ngram_range = (1,2))
Tfidf_vect.fit(dataset)
选项 2
for d in dataset:
Tfidf_vect2 = TfidfVectorizer(max_features=100000, ngram_range = (1,2))
Tfidf_vect2.fit(d)
此外,选项 2 不起作用,我不明白为什么。请帮助我。
TL;DR;正确的方法是选项 1(A)。
应用 TFIDF Vectorizer 的正确方法是使用文本语料库:
An iterable which yields either str, unicode or file objects.
根据the docs,你必须通过你的案例数组。
以及来自 Scikit-learn 文档的示例:
>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> corpus = [
... 'This is the first document.',
... 'This document is the second document.',
... 'And this is the third one.',
... 'Is this the first document?',
... ]
>>> vectorizer = TfidfVectorizer()
>>> X = vectorizer.fit_transform(corpus)
>>> print(vectorizer.get_feature_names())
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
>>> print(X.shape)
(4, 9)
选项1正确。 Fit 方法需要一个示例列表。检查这个:https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html#sklearn.feature_extraction.text.TfidfVectorizer.fit