nlp入门

国王大人yyds / 2023-07-31 / 原文

源码请到:自然语言处理练习: 学习自然语言处理时候写的一些代码 (gitee.com)

一、字符串处理

这里是一些自然语言中常用的python字符串操作,python内置无需安装

1.1 strip函数:去掉首尾特定字符

示例:

text = "     abcdef125s  wr2258abcd      "
print("base", text)
print("strip:", text.strip(" "))

 1.2 rstrip函数和lstrip函数:去掉右边特定字符和去掉左边特定字符

示例:

print("lstrip:", text.lstrip(" "))
print("rstrip:", text.rstrip(" "))

 1.3 replace函数:替换特定字符字串,可以传入参数确定替换字串的个数

示例:

print("replace:", text.replace('a', 'A'))
print("replace:", text.replace('a', 'A', 1))

 1.4 find函数:查找子串返回字串的下标位置,如果没有返回-1

示例:

print("find:", text.find('a'))

 1.5 isalpha函数和isdigit函数:判断字符串是否全为字母和判断字符串是否全为数字

示例:

print("isalpha:", "abc -", "abc".isalpha(), "123 -", "123".isalpha(), "a123 -", "a123".isalpha())
print("isdigit:", "abc -", "abc".isdigit(), "123 -", "123".isdigit(), "a123 -", "a123".isdigit())

 1.6 split函数:按照字串分割字符串

示例:

text2 = "a,d,dw,d,s,w,t,c,w,"
list1 = text2.split(',')
print("base:", text2)
print("split:", list1)

1.7 join函数:将字串列表按照特定字符间隔合并起来

示例:

print("join:", ",".join(list1))

二、正则表达式

python中还内置了re模块,可以使用正则表达式来进行数据的预处理,首先贴几张正则表达式语法表(摘自Python核心编程3rd)

 

 

 

 

 

 

2.1 将符合正则表达式的字符串匹配式传入re模块的compile函数,注意字符串前加r表示不使用转义字符,或者每个/写作//。

示例:

pattern = re.compile(r'\d+')
print("正则表达式:", re.findall(pattern, text))

 2.2 match函数和serch函数

两个函数都是查找是否有符合正则表达式的字串,不同在于match函数是字串必须从字符串第一个开始就匹配,如果没有则返回none,search函数是从原字符串任意位置开始匹配都可以

示例:

print("match:", re.match(pattern, text))
print("serch:", re.search(pattern, text))

 2.3 sub和subn函数

两个函数都是替换字符字串的功能,第二个函数会返回一个元组,元组中第二个参数表示替换了几处

示例:

print("sub:", re.sub(pattern, '*', text))
print("subn:", re.subn(pattern, '*', text))

 2.4 split切片函数

通过匹配的正则表达式为依据进行切片

示例:

print("split", re.split(pattern, text))

 三、nltk工具的使用

3.1  nltk工具的安装

使用命令

pip install nltk

安装nltk,但是仅仅是安装了nltk的框架,内部的软件包需要使用命令

nltk.download()

执行命令会弹出一个窗口

无法下载软件包的问题可以参考这篇:NLTK语料库nltk.download()安装失败及下载很慢的解决方法_深度学习菜鸟的博客-CSDN博客

将服务器地址改为了http://www.nltk.org/nltk_data/

 

 就可以正常安装软件包了

 

 未完待续