文本处理的基本方法

  • 分词:找到"分界符",将连续的字序列按照一定的规范重新组合成词序列的过程
  • 命名实体识别(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')]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值