学习总结
文章目录
- 学习总结
- 一、Natural Language Toolkit
- 二、常用语料库和词典
- 三、常用NLP工具集
- 3.1 分句
- 3.2 标记解析
- 3.3 词性标注
- Reference
一、Natural Language Toolkit
NLTK提供了多种语料库(Corpora)和词典(Lexicon)资源,如WordNet等,以及常用工具集,如分句、标记解析(Tokenization)、词干提取(Stemming)、词性标注(POS Taggin)和句法分析(Syntactic Parsing)等,用于英文文本数据处理。
关于nltk的下载还是很多坑的,如果直接import nltk
和nltk.download()
下载失败,可参考:
(1)nltk安装失败:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 (2)直接下载github的nltk:https://github.com/nltk/nltk_data。我一开始就是一直报错For more information see: https://www.nltk.org/data.html. Attempted to load tokenizers/punkt/english.pickle
,然而nltk_data
确实已经解压了还放在正确的路径中了还不行,尝试了几个办法后报错OSError: No such file or directory: 'D:\\anaconda1\\envs\\tensorflow\\lib\\nltk_data\\tokenizers\\punkt\\PY3\\english.pickle'
发现木有PY3文件,加了个PY3文件夹后还是不行,最后直接去github上重新下载一个nltk的punkt
包直接解压就行了。。。
(3)如果还是不行,就绝对路径吧sent_detector = nltk.data.load('D:\local\Anaconda3\Lib\site-packages//nltk-data//tokenizers/punkt/english.pickle')
,狗头滑稽。
注意:
nltk包放在的位置,可以通过如下代码查看:
二、常用语料库和词典
常用语料库(文本数据集),如图书、电影评论和聊天记录等,分为未标注语料库和人工标注语料库。
NLP任务中可以将一些停用词(如冠词a、the,介词of、to等)删除,提升计算速度,它们含义也不太重要。英文的常用停用词:
三、常用NLP工具集
3.1 分句
分句:将较长的文档切分为若干句子。
一个句子结尾一般有明显标志(如句号、问好、感叹号等)。
也有特殊情况,在英文中,句号不仅作为句尾标志,还可以作为单词的一部分,如Mr.
其中一句的分句的结果为:
也可以自己写的句子试试,然后进行分句:
分句的结果为:
3.2 标记解析
NLP最基本的输入单元:标记Token,它可以是一个词或标点符号。
任务如,将句子结尾标点符号和前面的单词进行拆分。
可以使用nltk.tokenize.word_tokenize
。
这里接着上面的一个句子sentences[100]
进行标记解析:
得到的该句子的每个token标记:
3.3 词性标注
根据词语上下文,确定具体词性。
如They sat by the fire
和They fire a gun
的fire意思不同,前者是名词,后者是动词。
从上面词性标注的结果看出,前者句子的fire被标注为名词(NN),后者被标注为动词(VBP),如果不知道词性单词的含义,可以help查询:
Reference
(1)NLTK官网:https://www.nltk.org/
(2)https://github.com/nltk/nltk_data