首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用字符串对列表进行聚类

使用字符串对列表进行聚类
EN

Stack Overflow用户
提问于 2013-12-18 11:32:04
回答 2查看 820关注 0票数 1

所以我有一个我的数据集,目前如下所示:

代码语言:javascript
复制
['microsoft','bizspark'],
['microsoft'],
['microsoft', 'skype'],
['amazon', 's3'],
['amazon', 'zappos'],
['amazon'],

……等。

现在,我想要做的是将它们相互关联起来,使用Levenstein距离来计算单词分数。

现在,我将遍历所有列表,并将距离与以下列表进行比较。

代码语言:javascript
复制
microsoft -> ['microsoft','bizspark'], ['microsoft'], ['microsoft', 'skype'],
amazon -> ['amazon', 's3'], ['amazon', 'zappos'], ['amazon'], ....

问题是如何做到这一点?如果我在一个单词的基础上计算每个levenstein距离,例如'amazon','zappos‘和'microsoft','bizspark',我会首先得到配对:(amazon,microsoft),(amazon,bizspark),(zappos,microsoft,(zappos,bizspark) ),并计算每对的距离。

或者我真的应该从这些字符串中创建字符串,然后计算距离?

然后我应该得到一个带有距离的NXN矩阵:

代码语言:javascript
复制
                            ['microsoft','bizspark'] | ['amazon', 'zappos'] ....
    ['microsoft','bizspark']           1             |          ?
    _-------------------------------------------------------------------------
    ['amazon', 'zappos']               ?             |          1
            ...
            ....

那么我如何对此应用聚类来确定一个截止阈值呢?

使用单个单词的一个这样的建议被讨论了here

但是我不知道如何处理单词列表!?

请注意,在实现方面,我使用Python库,如Numpy、Scipy、Pandas和按需。

EN

回答 2

Stack Overflow用户

发布于 2013-12-18 11:43:10

你匹配的目标可能主要取决于你的目标是什么。如果您想要匹配其中一个单词,您可能应该分别匹配这两个单词。如果你想匹配短语,那么‘’.join()‘’它们可能是个好主意。

顺便说一句,我最近用difflib.get_close_matches()做了一些模糊匹配。它在Python标准库中。我并不反对您可能使用的任何Levenstein距离库;我只是想指出这个选项对我来说是有效的。

票数 0
EN

Stack Overflow用户

发布于 2013-12-18 16:44:17

也许“频繁项集挖掘”比聚类更能满足你的需求。

它将发现频繁的单词组合,这样每个文档可能是多个模式的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20649207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档