如何找到发音相似的单词?

问题描述 投票:0回答:1

我正在编写一个专门的(食品领域)多语言搜索引擎。
我使用 python 和 nltk 库。 我有一个相当大的数据库,包含我想要支持的所有文化的食谱。

我问是否以及如何能够在我的索引单词语料库中找到拼写错误的单词...
例如,在意大利语中,要查找“couscous”一词,许多用户会说/写“cus cus”或“cuscus”...

综合而言,这是我如何标记词素索引以进行搜索的示例:

import re
import nltk
import string

corpus = 'italian'
stemmer = nltk.stem.snowball.ItalianStemmer()
stopWords = nltk.corpus.stopwords.words(corpus)

# tokenize the sentence(s)
wordTokenizedList = nltk.tokenize.word_tokenize(text)

# remove punctuation and everything lower case
wordTokenizedListNoPunct = [ word.lower() for word in wordTokenizedList if word not in string.punctuation ]

# remove stop words
wordTokenizedListNoPunctNoStopWords = [ word for word in wordTokenizedListNoPunct if word not in stopWords ]

# snowball stemmer 
wordTokenizedListNoPunctNoStopWordsStems = [ stemmer.stem(i) for i in wordTokenizedListNoPunctNoStopWords ]

return wordTokenizedListNoPunctNoStopWordsStems

我应该以不同的方式准备索引以实现我的目标吗?

当然,任何有关标记化文本分析中更完整流程的附加评论都应该受到欢迎......:-)

python nlp nltk
1个回答
0
投票

好吧,我只使用具有弹性搜索功能的数据库。

优点:

  1. 他们已经解决了此类问题
  2. 更快
  3. 更安全

嗯,你可以想象很长一段时间。

将 Python 与 SQLite 连接起来真的很容易,FTS5 (全文搜索) 模块效果很好!

我强烈建议您观看以下视频,以了解这是否适合您的解决方案:) 视频

© www.soinside.com 2019 - 2024. All rights reserved.