首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蟒蛇上没有soundex

蟒蛇上没有soundex
EN

Stack Overflow用户
提问于 2020-12-28 14:02:10
回答 2查看 111关注 0票数 1

我在python上使用sqlite3 librairy与.db文件交互。根据这一要求:

代码语言:javascript
复制
SELECT * FROM LesFilms F JOIN LesRealisateurs R ON (F.film_id=R.film_id) WHERE realisateur="Tim Burtyn" or soundex("Tim Burtyn")=soundex(R.realisateur) or realisateur like"T%m Burtyn" or realisateur like"Tim B%rtyn" or realisateur like"Tim Burt%n";

我发现了一个错误:

代码语言:javascript
复制
sqlite3.OperationalError: no such function: soundex

有人已经面临这个问题了吗?我分享整个请求,以防万一,我是一个完全的初学者。

谢谢,

埃利亚斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-28 20:08:01

我认为你运气不好,因为你可能是从评论中收集到的。模块sqlite3通常提供最新版本的sqlite。

  • In Python3.9,从2020年6月起为3.32.3,在Python3.8中为3.31.1,自2020年1月为3.31.1,在Python3.7和Python2.7.17中为
  • ,从2019年4月起为3.28.0。

但是Python库没有提供默认关闭的可选sqlite3特性。这包括soundex函数。我不能建议您尝试在打开选项的情况下构建自己版本的Python标准库模块。这类事情最好留给Python实现者。

作为另一种选择,您可以尝试levenshtein模块:pip install python-Levenshteinmetaphone模块:pip install Metaphone

要使用这两种方法,都需要从数据库中获取比实际需要的更多的记录,例如where realisateur like "T%",然后放弃Python代码中的不匹配,而不是where子句中的不匹配。

这并不像听起来那么糟糕,而且可能有好处。Soundex是在20世纪早期发展起来的,因此它的目的是让人们能够快速地手工计算它。它存在着重大缺陷,在随后的100年中为改进这一制度所作的许多努力就表明了这一点。其流行的主要原因是因为它是由许多SQL实现提供的,而不是因为它特别好。

票数 0
EN

Stack Overflow用户

发布于 2021-07-21 19:30:40

将数据加载到dataframe中,然后使用fuzzywuzzy查找类似的字符串单词。

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

https://stackoverflow.com/questions/65478806

复制
相关文章

相似问题

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