Python 存储句子中有趣的单词

Python 存储句子中有趣的单词,python,sql,sqlite,Python,Sql,Sqlite,我有一个像猫坐在垫子上这样的句子,存储为一个sql字段。我想定期搜索不在停止列表中的关键字,在这种情况下,cat-sat-mat将它们存储在SQL表中以便快速搜索的最佳方法是什么 就我所知,我看到了以下选项 每行最多[n]个附加列,每个字对应一列 将所有感兴趣的单词存储在一个逗号分隔的字段中 一个新表,使用上述任一选项链接到第一个表 每次我有新词要搜索时,什么也不做,搜索匹配项 哪个是搜索单词匹配的最佳实践,哪个是最快的?如果这有什么不同的话,我会在python中使用sqlite。我建议给你的句

我有一个像猫坐在垫子上这样的句子,存储为一个sql字段。我想定期搜索不在停止列表中的关键字,在这种情况下,
cat-sat-mat
将它们存储在SQL表中以便快速搜索的最佳方法是什么

就我所知,我看到了以下选项

  • 每行最多[n]个附加列,每个字对应一列
  • 将所有感兴趣的单词存储在一个逗号分隔的字段中
  • 一个新表,使用上述任一选项链接到第一个表
  • 每次我有新词要搜索时,什么也不做,搜索匹配项
    哪个是搜索单词匹配的最佳实践,哪个是最快的?如果这有什么不同的话,我会在python中使用sqlite。

    我建议给你的句子一个键,可能是标识。然后,我将创建第二个表,链接到您的句子表,每个有趣的单词对应一行

    如果您想搜索以ca开头的单词-如果以逗号分隔的形式存储这些单词,则必须通配符开头和结尾,而如果它们都位于单独的行中,则可以绕过开头通配符


    另外,假设您找到了匹配项,那么在逗号分隔的列表中,您必须解析出哪个单词实际上是一个匹配项。对于第二个表,您只需返回单词本身。更不用说在一个字段中存储多个值在关系数据库中是一个主要的禁忌。

    您最好的选择可能是进行全文搜索


    这些问题将有助于您朝着正确的方向前进。

    我对SQLite也做了类似的事情。根据我的经验,在这种情况下,它不如其他数据库的速度快,所以让您的模式尽可能简单是值得的

    • 每行最多[n]个附加列,每个字对应一列
    • 将所有感兴趣的单词存储在一个逗号分隔的字段中
    • 一个新表,使用上述任一选项链接到第一个表
    • 每次我有新词要搜索时,什么也不做,搜索匹配项

    在您的4个选项中,如果您希望使用
    之类的
    进行缩放和匹配,那么2)和4)可能会太慢。不过,使用全文进行匹配速度更快,因此值得研究。1) 看起来数据库设计很糟糕,如果单词比列多怎么办?如果少一点,那就是浪费空间。3) 在我看来,最好是将单词作为自己表中的主键,搜索速度应该可以接受

    这个比例合适吗?我现在有大约8万个句子需要拆分,而且很容易会多出一个数量级。我们需要知道这些表格将如何使用。我看不出缩放有任何问题。当然,您的表可能有几百万行,但根据您的搜索方式,这不应该是一个问题。如果每次都使用“%”进行搜索,那么完成这项工作没有太大意义。我喜欢所有的答案。非常感谢!看起来不错,但我可能需要模糊搜索。但我不知道这个存在