文本规范化技术

Python 中的自然语言处理(NLP)

Fouad Trad

Machine Learning Engineer

文本规范化

  • 规范化将词变为标准形式
  • 常用于文本分类、搜索、情感分析
  • 探索的技术:
    • 小写化
    • 词干提取
    • 词形还原

图像显示三个人用不同说法表达"我喜欢看导演优秀的电影!":"I enjoy watching movies with great direction!","I enjoyed watching movies that are well-directed.","Movies with excellent direction are something I enjoy."

Python 中的自然语言处理(NLP)

小写化

  • 不做规范化,这些词会被视为不同的标记
  • 会误导模型并扩大词表规模
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

图像显示一个人混淆于"data""Data""DATA"。

Python 中的自然语言处理(NLP)

小写化的适用性

适用场景

依赖关键词分析的任务

图像显示一个人在文本中搜索关键词。

Python 中的自然语言处理(NLP)

小写化的适用性

适用场景

依赖关键词分析的任务

图像显示一个人在文本中搜索关键词。

不适用场景

需要区分大小写才能表达不同含义的任务

图像显示一群人表示"us"和美国国旗表示"US"。

Python 中的自然语言处理(NLP)

词干提取(Stemming)

  • 通过去掉后缀将词还原为词根
    • running → run
    • reading → read
  • 有助于将相似词形归为一类
  • 可能产生无效单词
    • organization → organizat

词干提取标志

Python 中的自然语言处理(NLP)

代码中的词干提取

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
tokens = ['running', 'bats', 'organizations', 'reading']
stemmed = [stemmer.stem(word) for word in tokens]
print(stemmed)
['run', 'bat', 'organizat', 'read']
Python 中的自然语言处理(NLP)

词形还原(Lemmatization)

  • 将词还原为词元(基本形式)
  • 结果为有效词
    • organizations → organization
  • 语法准确性关键时更有用
  • 比词干提取更慢但更精确

词形还原标志

Python 中的自然语言处理(NLP)

代码中的词形还原

from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')
lemmatizer = WordNetLemmatizer()
tokens = ['running', 'bats', 'organizations', 'reading']
lemmatized = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized)
['running', 'bat', 'organization', 'reading']
Python 中的自然语言处理(NLP)

词干提取

  • 更快
  • 可能产生非词典词
  • 速度优先时使用

图像显示一人用电锯砍树。

词形还原

  • 更慢
  • 更准确
  • 语法准确性优先时使用

图像显示一人细致修剪树木以保持结构。

Python 中的自然语言处理(NLP)

让我们练习!

Python 中的自然语言处理(NLP)

Preparing Video For Download...