在MySQL中合并相似的记录(python&sqlalchemy)

2024-05-19 07:22:31 发布

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

我有一个巨大的数据库表,由音乐类型组成。 大约有3.5万张唱片,其中大部分都是同一类型的唱片,例如:

+-----------+ 
| Name      |
+-----------+
| "Dubstep" |
| Dub Step  |
| Dubstep   |
| dub-step  |
| dubstep   |
+-----------+

所有这些都可以简化为一种独特的体裁,我们可以简单地称之为“dubstep”。在

所以我想要一个更干净的数据集,但是我想听听一些建议, 我怎么知道“dub step”和“dubstep”是否表达相同的意思?在

请注意,我使用的是Python和SQLAlchemy。 我并不是一个非常精通SQL的专家。在


Tags: 数据name数据库类型音乐stepdub建议
1条回答
网友
1楼 · 发布于 2024-05-19 07:22:31

你可以试着规范化therm,把所有的东西都放低,然后去掉空格、破折号等非字母数字字符。这将解决一些甚至大部分的差异,同时产生最少的误报。在

另一种单独使用或与第一种方法结合使用的方法是使用Levenshtein距离http://en.wikipedia.org/wiki/Levenshtein_distance,并用最小距离对单词进行分组。在

注意:你应该先看看有多少实际上是“大部分”,通过观察有多少情况将被第一个解决方案清理,然后尝试逐步地过滤掉,直到你找到最有可能是很少的并且可以手动帮助的角落案例。在

为了实际实现这一点,我将在sqlite数据库中传输所有内容,然后用python编写(或试验)一个排序函数并应用它。示例:http://docs.python.org/2/library/sqlite3.html搜索create_排序规则。在

相关问题 更多 >

    热门问题