词典或者词典资源是一个词或者短语以及以及一些相关信息的集合。nltk.corpus.words下有相应的字典资源。下面的程序是将文本中不常见的词汇提取出来。
import nltk
def unusual_word(text):
'''
提取text单词表中不常见的词汇
:param text:文章词汇表
:return:
'''
text_word = set(text)
usual_word = set(nltk.corpus.words.words())
unusual_words = text_word.difference(usual_word)
print(unusual_words)
#测试文本
text = "hello world hello pyhton"
#使用正则表达式切分,能直接去除标点符号
token = nltk.tokenize.regexp_tokenize(text,r'\w+')
#打印切分结果
print(token)
#调用函数输出词表token中不常见的单词
unusual_word(token)
不常见单词提取
停用词语料库,就是那些高频词汇,如:the,to,我们有时在进一步的处理之前想要将它们从文档中过滤。停用词通常几乎没有什么词汇内容,而它们的出现会使区分文本变困难。
from nltk.corpus import stopwords
#英语单词中的停止词
print(stopwords.words('english'))
比较词典
感觉是将单词都根据意思排序将所有语言的单词都写在文件中通过语言标识访问单词表,所有语言的单词表对应位置的单词意思都是一样的。看下面这个简单的翻译程序。
from nltk.corpus import swadesh
fileids = swadesh.fileids()
#输出语言标识
print("语言标识",fileids)
#英语词典
words = swadesh.words('en')
print("英语词典",words)
#法语词典
words = swadesh.words('fr')
print("法语词典",words)
#将两个词典单词联合
fr2en = swadesh.entries(['fr','en'])
print("法语和英语联合",fr2en)
#转换为字典,即可通过法语访问对应的英语
translate = dict(fr2en)
word = input("输入法语词汇翻译为英语词汇")
print(word,"翻译为英语:",translate[word])
运行结果
网友评论