文档聚类以在 Pandas 列中查找常见字符串

问题描述

我正在构建分类模型以改进系统。我已使用 nltk 库将解析字符串转换为推荐字符串。我现在遇到的问题是有许多非常常见的解析字符串。我想将这些合并到一个公共字符串中。例如,如果我有字符串

It is recommended to replace scanner It is recommended to change scanner

然后我会取列中出现次数最多的字符串 It is recommended to replace scanner 并用它替换 It is recommended to change scanner。我希望这很清楚。由于我有许多不同的分辨率字符串 188,000 或更多。我第一次尝试了 fuzzy wuzzy 库,但速度太慢了。

现在我正在尝试聚类,目前我已经尝试使用 kmeanstf-idf 但它没有给我最好的结果。例如,

v = TfidfVectorizer(max_features=6000,ngram_range=(1,3),stop_words = 'english',strip_accents= 'ascii')
x = v.fit_transform(hardware['resolution_modified'])
kmeans = KMeans(n_clusters=30).fit(x)

然后我像这样测试

test_strings = ['It is recommended to replace keyboard','It is recommended to change keyboard','It is recommended to replace laptop','It is recommended to image scanner','It is recommended to replace defective scanner with new','It is recommended to replace scanner','It is recommended to change battery']
kmeans.predict(v.transform(test_strings))

这给了我这个输出

array([ 5,27,8,25,3,11,27],dtype=int32)

如您所见,结果并不理想。我还尝试了其他聚类方法,例如层次聚类,例如 AgglomerativeClustering,但即使我有 122 GB 的内存,我也遇到了内存错误。我也知道它的计算成本很高。我也尝试过 DBScan,但我没有太多经验来获得任何有意义的结果。

我想看看是否有关于我应该从这里去哪里的建议?也许有更稳定的文本数据聚类方法或更改 tf-idf 中的某些参数可以产生更好的结果。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)