NLP汉语自然语言处理学习笔记2020

本文针对使用Python3进行自然语言处理(NLP)的实践者,总结了在实践中遇到的代码适配问题及解决方案,包括代码语法调整、库导入修改、函数替换等内容,特别强调了在不同NLP任务如词性标注、命名实体识别、语义角色标注等环节的具体调整方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、我使用的是Python3.6,书中python版本落后,基本上给的实例代码均需更改。更改内容总结如下:

1.书中的设置UTF-8输出环境那部分的代码均需更改才能正常运行:

import importlib
importlib.reload(sys)

2.python3的输出语句print必须带括号,否则报错

例:书上P18,使用Ltp进行中文分词,正确写法:

import os
import sys
from pyltp import Segmentor

import importlib
importlib.reload(sys)

model_path="cws.model"
segmentor=Segmentor()
segmentor.load(model_path)
words=segmentor.segment("在包含问题的所有解的解空间树中,按照深度优先搜索策略,从根结点出发深度探索解空间树。")

print(" | ".join(words))

3.将xrange( )函数全部换为range( )
P34页代码:for i in xrange(arclen): 修改为 for i in range(arclen):
4.python3以后,dict.keys的返回值是dict_keys对象,不支持索引值。在keys()外面套一个list()即可。P178Viterbi算法倒数第三行改为如下:

temp[list(vector.keys())[argmax(vector.values())]]=max(vector.values())

5.python2中的import StringIO,改为import io
file=StringIO() → file=io.StringIO()
6.python3没有splitlines()函数,实际上的作用是把文件按行切分,可以通过f.readlines()来实现。
7.识别汉字re.compile(r"[\u4e00-\u9fa5]+"),python2是ur"[\u4e00-\u9fa5]+",但python3只需r"[\u4e00-\u9fa5]+"即可。

二、难理解,易报错的几节总结:

1.4.2 安装StanfordNLP并编写Python接口类 1.4.3 执行Stanford词性标注
1.5.2 Stanford命名实体识别
1.7 整合语义角色标注模块:如果你使用的是ltp3.4且是Windows系统, pisrl.model模型不用,需要重新下载支持Windows系统的模型。点我下载
6.1.2 短语结构文法: stanford-corenlp最新版本是没有Sentence的,改为SentenceUtil,import和应用中都改即可。

import java.util.List;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
import edu.stanford.nlp.ling.SentenceUtils;
import edu.stanford.nlp.trees.Tree;
public class PCFGDemo {
	public static void main(String[] args) throws Exception {
		LexicalizedParser lp=LexicalizedParser.loadModel("models/chinesePCFG.ser.gz");
		String[] sent= {"张三","参加","了","会议"};
		List<CoreLabel> rawWords=SentenceUtils.toCoreLabelList(sent);
		Tree parse=lp.apply(rawWords);
		parse.pennPrint();
		System.out.println();
	}
}

7.2.1 中文分词语料库-词频统计的实现

补充:在命令行下载第三方库,亲测有效,速度很快:

pip --default-timeout=100 install 库名称 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值