【NLP】自然语言处理基础技能

前言

  了解自然语言处理的都知道,我们在得到文本数据的时候,往往需要对文本进行一些操作,例如:匹配字符串、分词以及字符串的相关操作。本篇便是主要介绍自然语言处理中的基础技能,主要包括:Python正则表达式、jieba分词、Python字符串处理等。

本篇代码可见:Github

一、Python 正则表达式

  我们在大文本中匹配字符串时,有些情况用str自带的函数(比如find, in)可能可以完成,有些情况会稍稍复杂一些(比如说找出所有“邮箱”、“手机号”、“地址”等信息的字符串),这个时候我们需要某种模式的工具,这个时候正则表达式就派上用场了。

正则表达式 是处理字符串的强大工具,拥有独特的语法和独立的处理引擎。

正则表达式不是Python独有的,所有的正则表达式的语法都一样,所以了解正则表达式的只需要简单看一下就可以上手了。

  • 参考我的博客:Python3中的正则表达式

  • 在线验证工具:链接1、链接2

  • 正则表达式练习:链接

二、jieba分词

  • 此部分参考:中文处理前提–jieba详解

  • 代码可见: 01_正则表达式和jieba分词.ipynb

此外除了jieba分词,还有北大开源分词工具 pkuseg

三、pkuseg分词

  pkuseg 是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。pkuseg 具有如下几个特点:

  • 高分词准确率。相比于其他的分词工具包,该工具包在不同领域的数据上都大幅提高了分词的准确度。根据测试结果,pkuseg 分别在示例数据集(MSRA和CTB8)上降低了79.33%和63.67%的分词错误率。
  • 多领域分词。该分词包训练了多种不同领域的分词模型。根据待分词的领域特点,用户可以自由地选择不同的模型。
  • 支持用户自训练模型。支持用户使用全新的标注数据进行训练。

工具使用:

pip install pkuseg

之后通过import pkuseg来引用

参数说明:

# 模型配置
pkuseg.pkuseg(model_name = "default", user_dict = "default", postag = False)
参数名称 参数描述 可选值
model_name 模型路径 “default”,默认参数,表示使用我们预训练好的混合领域模型(仅对pip下载的用户)。“news”, 使用新闻领域模型。“web”, 使用网络领域模型。“medicine”, 使用医药领域模型。“tourism”, 使用旅游领域模型。 model_path, 从用户指定路径加载模型。
user_dict 设置用户词典 “default”, 默认参数,使用我们提供的词典。None, 不使用词典。dict_path, 在使用默认词典的同时会额外使用用户自定义词典,可以填自己的用户词典的路径,词典格式为一行一个词
postag 是否进行词性分析 False, 默认参数,只进行分词,不进行词性标注。True, 会在分词的同时进行词性标注。
# 对文件进行分词
pkuseg.test(readFile, outputFile, model_name = "default", user_dict = "default", postag = False, nthread = 10)
参数名称 参数描述
readFile 输入文件路径
outputFile 输出文件路径。
model_name 模型路径,同pkuseg.pkuseg
user_dict 设置用户词典,同pkuseg.pkuseg
postag 设置是否开启词性分析功能,同pkuseg.pkuseg
nthread 测试时开的进程数
# 模型训练
pkuseg.train(trainFile, testFile, savedir, train_iter = 20, init_model = None)
参数名称 参数描述
trainFile 训练文件路径。
testFile 测试文件路径。
savedir 训练模型的保存路径。
train_iter 训练轮数。
init_model 初始化模型,默认为None表示使用默认初始化,用户可以填自己想要初始化的模型的路径如init_model=’./models/’。

代码示例:

  • 代码可见:02_北大pkuseg分词工具.ipynb

四、Python 字符串处理

代码可见:03_字符串处理.ipynb

本篇主要介绍一些自然语言处理中的基础工具,主要用于文本预处理。其中包含了多个链接,也是博主之前学习过的,以供参考。

你可能感兴趣的:(NLP)