我试图在 Python 脚本中标记化后仅将字符串中的某些值插入表中(即排除常见单词)。
传入的字符串可能看起来像“这是一个我想要解析的字符串,因为它提到了 IOT”。在这些单独的标记/单词中,我想排除诸如“this”“is”“a”“I”“want”等的内容 - 但应保留不太常见的标记,如“string”“parse”等。
目前,我计划有一个可供引用的常用单词表。
虽然我可以做类似INSERT $term$ WHERE NOT IN(SELECT * FROM exceptedterm)
的事情,但似乎应该有比构建查询更简单的方法每个术语(因此,每个术语都对数据库进行单独检查)。
是否有一种 Pythonic 方法可以执行 SQL 支持的与 NOT IN()...
等效的操作?也许将 excludes
表读入列表,然后以某种 NOT IN($list$)
格式将标记与其进行比较?
最佳答案
您可以通过以下 python 代码段预处理数据。
首先读取公共(public)表中的所有单词并填充下面的忽略
列表。
inp = "this is a string I want to parse because it mentions IOT"
ignored = ['this', 'is', 'are', 'a', 'to','it','from']
result = [item for item in inp.split() if item not in ignored]
print(result)
将所有忽略的术语添加到忽略
列表中。在这里,我们使用列表理解来计算结果
。或者,我们可以使用 for
循环来实现相同的目的。
结果
是列表。迭代此操作以插入到您的数据库中。
关于python - 在使用 Python 插入之前检查字符串是否存在于 MySQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452782/