- 分词:找到"分界符",将连续的字序列按照一定的规范重新组合成词序列的过程
- 命名实体识别(Named Entity Recongnition):找出文本中的命名实体,如人名、地名等
- 词性标注(Part-Of-Speech tagging):标注文本中每个词的词性
import jieba
import jieba.posseg as pseg
import spacy
# 三种分词模式
def jieba_segmentation():
content = "苹果公司是一家科技公司,他们生产手机、电脑和平板等电子产品"
# 1. 精确模式:将句子中的词语精确地分开,适合文本分析 (默认模式)
precise_cut = jieba.lcut(sentence=content, cut_all=False)
print('精确模式分词结果:', precise_cut)
# 2. 全词模式:扫描出句子中所有可能的词语,速度快,但不能解决歧义
full_cut = jieba.lcut(sentence=content, cut_all=True)
print('全词模式分词结果:', full_cut)
# 3. 搜索引擎模式:在精确模式的基础上,对长词再次切分,适合搜索引擎
search_cut = jieba.lcut_for_search(sentence=content)
print('搜索引擎模式分词结果:', search_cut)
# 繁体字处理
def jieba_traditional_chinese():
content = "蘋果公司是一家科技公司,他們生產手機、電腦和平板等電子產品"
traditional_cut = jieba.lcut(content) # 精确模式
print('繁体字分词结果:', traditional_cut)
# 自定义词典加载
def jieba_custom_dictionary():
content = "苹果公司与特斯拉合作开发智能汽车"
# 1. 使用默认词典进行分词
default_cut = jieba.lcut(sentence=content, cut_all=False)
print('默认词典分词结果:', default_cut)
# 2. 加载自定义词典后进行分词
jieba.load_userdict('custom_dict.txt')
custom_cut = jieba.lcut(sentence=content, cut_all=False)
print('自定义词典分词结果:', custom_cut)
# 命名实体识别
def spacy_named_entity_recognition():
nlp = spacy.load('zh_core_web_sm')
content = "特斯拉和苹果公司正在研发自动驾驶技术"
doc = nlp(content)
print("命名实体识别结果:", [(ent.text, ent.pos_) for ent in doc])
# 词性标注
def jieba_pos_tagging():
pos_tagged_words = pseg.lcut("特斯拉和苹果公司正在研发自动驾驶技术")
print('词性标注结果:', [(word, flag) for word, flag in pos_tagged_words])
if __name__ == '__main__':
print('== 三种分词模式 ==')
jieba_segmentation()
print('\n== 繁体字处理 ==')
jieba_traditional_chinese()
print('\n== 自定义词典 ==')
jieba_custom_dictionary()
print('\n== 命名实体识别 ==')
spacy_named_entity_recognition()
print('\n== 词性标注 ==')
jieba_pos_tagging()
== 三种分词模式 ==
精确模式分词结果: ['苹果公司', '是', '一家', '科技', '公司', ',', '他们', '生产', '手机', '、', '电脑', '和', '平板', '等', '电子产品']
全词模式分词结果: ['苹果', '苹果公司', '公司', '是', '一家', '科技', '公司', ',', '他们', '生产', '手机', '、', '电脑', '和平', '平板', '等', '电子', '电子产品', '子产', '产品']
搜索引擎模式分词结果: ['苹果', '公司', '苹果公司', '是', '一家', '科技', '公司', ',', '他们', '生产', '手机', '、', '电脑', '和', '平板', '等', '电子', '子产', '产品', '电子产品']== 繁体字处理 ==
繁体字分词结果: ['蘋果', '公司', '是', '一家', '科技', '公司', ',', '他們', '生產', '手機', '、', '電腦', '和', '平板', '等', '電子', '產品']== 自定义词典 ==
默认词典分词结果: ['苹果公司', '与', '特斯拉', '合作开发', '智能', '汽车']
自定义词典分词结果: ['苹果公司', '与', '特斯拉', '合作开发', '智能汽车']== 命名实体识别 ==
命名实体识别结果: [('特斯拉', 'NOUN'), ('和', 'CCONJ'), ('苹果', 'NOUN'), ('公司', 'NOUN'), ('正在', 'ADV'), ('研发', 'VERB'), ('自动', 'ADJ'), ('驾驶', 'VERB'), ('技术', 'NOUN')]== 词性标注 ==
词性标注结果: [('特斯拉', 'nrt'), ('和', 'c'), ('苹果公司', 'n'), ('正在', 't'), ('研发', 'j'), ('自动', 'vn'), ('驾驶', 'v'), ('技术', 'n')]