我正在编写一个专门的(食品领域)多语言搜索引擎。
我使用 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
我应该以不同的方式准备索引以实现我的目标吗?
当然,任何有关标记化文本分析中更完整流程的附加评论都应该受到欢迎......:-)