自然语言处理(NLP)笔记-文本预处理

文本预处理(text pre-processing)

Why: 单词由于时态,单复数,比较级等不同有不同的形态

典型的文本预处理步骤:

  1. Tokenisation: 将文本分割为句子,然后分割为单词。
  • 句子分割(sentence segmentetion):在语法上正确的意思独立的最短的一组词。通过标点进行分割,叹号和问号是明确的,但是句号却有点模糊(例如缩写或者小数等)。可以通过a.手写规则(if-then)b.正则表达式c.机器学习来处理。以下是一个判断一个单词是否是一句话结尾的决策树。
    自然语言处理(NLP)笔记-文本预处理
  • 词语分割(word segmentation): 针对的是汉语。最大匹配法/MM方法(The Maximum Matching Method)
    正向最大匹配指的是从左到右对一个字符串进行匹配,所匹配的词越长越好,比如“中国科学院计算研究所”,按照词典中最长匹配原则的切分结果是:“中国科学院/计算研究所”,而不是“中国/科学院/计算/研究所”。 但是正向最大匹配也会存在一些bad case,常见的例子如:“他从东经过我家”,使用正向最大匹配会得到错误的结果:“他/从/东经/过/我/家”。
    逆向最大匹配的顺序是从右向左倒着匹配,如果能匹配到更长的词,则优先选择,上面的例子“他从东经过我家”逆向最大匹配能够得到正确的结果“他/从/东/经过/我/家”。 但是逆向最大匹配同样存在badcase:“他们昨日本应该回来”,逆向匹配会得到错误的结果“他们/昨/日本/应该/回来”。
  1. Stopword removal: 移除无意义词。例如to, a, the 等,NLTK提供了一系列stopwords。

  2. Normalising word formats:

  • lemmatisation:将单词还原为字典中的形式。eg:am->be, cars->car. 优点是可以得到字典中的单词,缺点是费事,需要推断出每一个单词的意思。 eg: Reading(verb)->read, Reading(noun)->Reading(城市)

  • stemming:通过一定的规则,找到词干,剥掉后缀。eg: am,are,is->am,ar,is, car,cars,car’s,cars’->car,car,car’s,car’, those cars are really beautiful->those car ar realli beauti. 优点是比lemmatisation快,缺点是不总是还原为字典单词
    自然语言处理(NLP)笔记-文本预处理