赞
踩
重磅干货,第一时间送达
本文将讨论自然语言处理中文本预处理的基本步骤。要将文本从人类语言转换成用于进一步处理的机器可读格式。我们还将讨论文本预处理工具。
在获得文本之后,我们从文本规范化开始。文本规范化包括:
将所有字母转换为小写或大写
将数字转换为单词或删除数字
删除标点、重音符号和其他音调符号
删除空格
扩展缩写词
删除停止词、稀疏词和特定词
文本规范化
我们将在下面详细描述文本规范化步骤。
1. 将字母转换为小写
Python 代码:
输出:
the 5 biggest countries by population in 2017 are china, india, united states, indonesia, and brazil.
2. 删除数字
删除与分析无关的数字。通常,正则表达式用于删除数字。
Python 代码:
输出:
Box A contains red and white balls, while Box B contains red and blue balls.
3. 删除标点符号
以下代码删除了这组符号:[!”#$%&’()*+,-./:;?@[\]^_`{|}~]:
Python 代码:
输出:
This is an example of string with punctuation
4. 删除空格
要删除前导空格和结束空格,可以使用 strip() 函数。
Python 代码:
输出:
‘a string example’
5. 删除停止词
“停止词”是语言中最常见的词,如“the”、“a”,“开”、“是”、“全部”。这些词没有重要意义,而且通常从文本中删除。可以使用自然语言工具包(NLTK),一套用于符号和统计自然语言处理。
Python 代码:
输出:
[‘NLTK’, ‘leading’, ‘platform’, ‘building’, ‘Python’, ‘programs’, ‘work’, ‘human’, ‘language’, ‘data’, ‘.’]
6. Stemming
Stemming是将单词减为词干、词根或词干的过程。根表单(例如,books-book、looked-look)。主要两个算法是 Porter stemming algorithm(从单词中删除常见的词尾)和 Lancaster stemming algorithm(一种更具攻击性的词干算法)。
Python 代码:
输出:
There are sever type of stem algorithm.
7. Lemmatization
Lemmatization 与Stemming 功能相似,但作用相反。它不是简单地切掉词干。相反,它使用词汇知识获取正确单词基本形式的基础。
Python 代码:
输出:
be have do language city mouse
8. 语音标记部分
词性标记的一部分旨在将词性部分分配给基于它的给定文本(如名词、动词、形容词和其他)定义及其上下文。
Python 代码:
输出:
[(‘Parts’, u’NNS’), (‘of’, u’IN’), (‘speech’, u’NN’), (‘examples’, u’NNS’), (‘an’, u’DT’), (‘article’, u’NN’), (‘to’, u’TO’), (‘write’, u’VB’), (‘interesting’, u’VBG’), (‘easily’, u’RB’), (‘and’, u’CC’), (‘of’, u’IN’)]
9. 分块(浅解析)
分块是一种自然的语言过程,用于识别组成部分把句子(名词、动词、形容词等)联系起来具有离散语法意义的顺序单位(名词组或短语、动词组等)。
Python 代码:
输出:
[(‘A’, u’DT’), (‘black’, u’JJ’), (‘television’, u’NN’), (‘and’, u’CC’), (‘a’, u’DT’), (‘white’, u’JJ’), (‘stove’, u’NN’), (‘were’, u’VBD’), (‘bought’, u’VBN’), (‘for’, u’IN’), (‘the’, u’DT’), (‘new’, u’JJ’), (‘apartment’, u’NN’), (‘of’, u’IN’), (‘John’, u’NNP’)]
Python 代码:
输出:
(S (NP A/DT black/JJ television/NN) and/CC (NP a/DT white/JJ stove/NN) were/VBD bought/VBN for/IN (NP the/DT new/JJ apartment/NN) of/IN John/NNP)
10. 命名实体识别
命名实体识别(NER)旨在在文本中查找命名实体并将其分为预先定义的类别(人员姓名,地点、组织、时间等)。
Python 代码:
输出:
(S (PERSON Bill/NNP) works/VBZ for/IN Apple/NNP so/IN he/PRP went/VBD to/TO (GPE Boston/NNP) for/IN a/DT conference/NN ./.)
11. 词搭配提取
搭配是经常出现在一起的单词组合。例如 “break the rules,” “free time,” “draw a conclusion,” “keep in mind,” “get ready,” 等。
Python 代码:
输出:
[“on the line”]
总结
在本文中,我们讨论了文本预处理,并描述了它的主要功能。步骤包括标准化、标记化技术、词干化、分组、语音标记、命名实体识别等。我们还讨论了文本预处理工具和示例。文本预处理完成后,结果可用于更多复杂的 NLP 任务,例如机器翻译或自然翻译语言生成。
资源下载
目前作者 Olga Davydova 所总结的这份教程完整的 pdf 文件已经打包完毕,获取方式如下:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。