1. NLP自然语言处理基础与工具链搭建
1.1 开发环境配置与管理
在开始NLP项目前,合理的开发环境配置至关重要。Anaconda作为Python环境管理工具,能有效解决依赖冲突问题。以下是完整的环境管理指南:
bash复制# 查看已创建的虚拟环境
conda env list
# 创建Python3.8的虚拟环境(推荐版本)
conda create -n nlp_env python=3.8
# 激活环境
conda activate nlp_env
# 安装核心依赖
pip install jieba tensorflow torch pandas scikit-learn
# 验证安装
python -c "import jieba; print(jieba.__version__)"
注意:建议为每个NLP项目创建独立环境,避免包版本冲突。对于生产环境,需通过
conda env export > environment.yml导出配置。
1.2 Jieba分词深度解析
1.2.1 基础分词模式对比
Jieba提供三种分词模式,实际效果对比如下:
python复制import jieba
text = "传智教育是一家上市公司,旗下有黑马程序员品牌"
# 精确模式(默认)
print("精确模式:", jieba.lcut(text))
# 输出:['传智', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马', '程序员', '品牌']
# 全模式
print("全模式:", jieba.lcut(text, cut_all=True))
# 输出:['传智', '教育', '是', '一家', '上市', '公司', ',', '旗下', '有', '黑马', '程序', '程序员', '品牌']
# 搜索引擎模式
print("搜索模式:", jieba.lcut_for_search(text))
# 输出:['传智', '教育', '是', '一家', '上市', '公司', '上市公司', ',', '旗下', '有', '黑马', '程序', '员', '程序员', '品牌']
1.2.2 自定义词典实战
当处理专业术语时,需加载自定义词典。词典格式为词语 词频 词性(后两者可省略):
python复制# userdict.txt内容示例
黑马程序员 5 n
传智教育 6 n
人工智能 7 nz
# 加载自定义词典
jieba.load_userdict("./userdict.txt")
result = jieba.lcut("我在黑马程序员学习人工智能")
print(result) # 正确切分:['我', '在', '黑马程序员', '学习', '人工智能']
经验:词典词频设置应大于默认词典中的同义词频(可通过
jieba.suggest_freq()查看),否则可能不生效。
1.2.3 词性标注进阶
Jieba的posseg模块支持词性标注,中文常见词性标签如下:
python复制import jieba.posseg as pseg
words = pseg.lcut("Python是最受欢迎的编程语言")
for word, flag in words:
print(f"{word}({flag})", end=" ")
# 输出:Python(eng) 是(v) 最(d) 受欢迎(v) 的(uj) 编程(vn) 语言(n)
常见词性标记:
- n:名词
- v:动词
- a:形容词
