TfidVectorizer将单词拆分为单个字符?

2024-10-03 09:17:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一组描述中找到最近的邻居。描述通常包含1-15个单词,我正在使用scikit的TfIdfVectorizer对其进行标记化。然后,使用相同的矢量器,拟合基本描述。然而,矢量器似乎将这个矩阵划分为字符而不是单词,因为生成的稀疏矩阵是形状[基本描述中的字母数x语料库中唯一单词的数量]

descriptions = 'total assets'

products = LoadData('C:/dict.csv', dtype = {'Code': np.str, 'LocalLanguageLabel': np.str})
products = products.fillna({'LocalLanguageLabel':''})

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(token_pattern=r'\b\w+\b')
#tried the below two as well
#vectorizer = TfidfVectorizer()
#vectorizer = TfidfVectorizer(token_pattern=r'\b\w+\b', analyzer = 'word')
dict_matrix = vectorizer.fit_transform(products['LocalLanguageLabel'])
input_matrix = vectorizer.transform(description)

from sklearn.neighbors import NearestNeighbors
model = NearestNeighbors(metric='euclidean', algorithm='brute')
model.fit(dict_matrix)   

distance, indices = model.kneighbors(input_matrix,n_neighbors = 10)

当我打印输入矩阵时,这就是我得到的结果(您可以猜测索引与“totalassets”中的字符相关):

^{pr2}$

这是意料之中的事吗?我希望有10个距离和10个索引,而我得到了12个列表,每个列表包含10个元素。在


Tags: frommodel矢量np矩阵sklearn字符单词
1条回答
网友
1楼 · 发布于 2024-10-03 09:17:15

对,我花在这上面的时间很简单。我将description打包到一个列表中,得到了预期的10个结果:

input_matrix = vectorizer.transform([description])

相关问题 更多 >