nlp入门
源码请到:自然语言处理练习: 学习自然语言处理时候写的一些代码 (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/

就可以正常安装软件包了
未完待续