研究搜索引擎算法的工具:NLTK

By | 2019年4月10日

了解搜索引擎的算法离不开自然语言处理模型,python用的最多的NLP包就是NLTK了。毕竟NLTK的意思就是Natural Language Toolkit,自然语言处理工具包。

按NLP的处理流程,基本用法也就这些:

1)采集的页面需要去掉HTML,不过新版的NLTK已经去掉这个功能,推荐使用BeautifulSoup的get_text()函数

2)语句分离。每种语言的句子分隔符都不一样,用NLTK内置的比较保险:

from nltk.tokenize import sent_tokenize
all_sen = sent_tokenize(text)

3)标识化处理

from nltk import word_tokenize
s ="Hi Everyone !    hola gr8"
word_tokenize(s)

4)词干提取stemming。一般英语环境下用Porter就够用了。各种提取器在精准度和性能上有差异,可以参考官方文档

from nltk.stem import PorterStemmer # import Porter stemmer
from nltk.stem.lancaster import LancasterStemmer
from nltk.stem.Snowball import SnowballStemmer
pst = PorterStemmer()   # create obj of the PorterStemmer
lst = LancasterStemmer() # create obj of LancasterStemmer
lst.stem("eating")
pst.stem("shopping")

5)删除停止词。各种语言的stopwords都不同,好在网上一抓一把这种list。

from nltk.corpus import stopwords
stoplist=stopwords.words('english') # config the language name
text = "This is just a test"
clean_word_list=[word for word in text.split() if word not in stoplist]

这些都是常见的NLP处理,还有一些如罕见词移除,词形还原( lemmatization )也各有用途。要说对站群大批量处理keywords特别有用的还是spell check,NLTK也提供了方法,如计算编辑距离:

from nltk.metrics import edit_distance
edit_distance(“rain”,”shine”)

不过最好的方式还是抓取Google的拼写建议,错拼连拼补全一次性帮你做好,居家旅行杀人放火必备良药:

发表评论

电子邮件地址不会被公开。 必填项已用*标注