Python+Sqlite 中是否有可用的字符串相似性度量,例如sqlite3模块?
用例示例:
import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute('CREATE TABLE mytable (id integer, description text)')
c.execute('INSERT INTO mytable VALUES (1, "hello world, guys")')
c.execute('INSERT INTO mytable VALUES (2, "hello there everybody")')
Run Code Online (Sandbox Code Playgroud)
此查询应匹配 ID 为 1 的行,但不匹配 ID 为 2 的行:
c.execute('SELECT * FROM mytable WHERE dist(description, "He lo wrold gyus") < 6')
Run Code Online (Sandbox Code Playgroud)
如何在 Sqlite+Python 中做到这一点?
关于我到目前为止发现的内容的注释:
该Levenshtein距离,即单字符编辑(插入,删除或替换)的最小数量需要改变一个字到另一个,可能是有用的,但我不知道是否SQLite中存在的正式实施(我看到了一些自定义实现,比如这个)
所述Damerau-的Levenshtein是相同的,除了它也允许两个相邻字符之间换位; 它也被称为编辑距离
我知道自己定义一个函数是可能的,但是实现这样的距离并不容易(对数据库进行超高效的自然语言处理比较真的很重要),这就是为什么我想看看 Python / Sqlite 是否已经具有这样的功能一个工具
Sqlite 具有 …
我使用的是 python 3.5.1,它附带了 3.8.11 的 sqlite 版本。我想知道我是否可以在我当前的 python 中使用 sqlite 的另一个版本(比如目前最新的版本)。如果答案是肯定的那么我该怎么做?从这里学习我尝试了这个,但它没有做任何事情:
pip install sqlite3 --upgrade
Run Code Online (Sandbox Code Playgroud)
我在需要全文搜索的 django 项目中使用 sqlite3。所以我正在读这篇文章,有一次我很想使用最新版本的 sqlite3,因为它说它比以前的版本有一些改进,这对我来说似乎很有趣。无论如何,是否可以在不升级python的情况下使用更高版本的sqlite3?
注意:这个问题几乎是完全重写的,所以很多评论可能看起来无关紧要。感谢Alasdair,我知道之前的问题没有任何意义,因此我重新写了它。