【自然语言处置惩罚(NLP)】jieba分词的使用(分词模式、关键词提取) ...

打印 上一主题 下一主题

主题 1050|帖子 1050|积分 3150

个人主页:道友老李
欢迎加入社区:道友老李的学习社区
介绍

**自然语言处置惩罚(Natural Language Processing,NLP)**是计算机科学领域与人工智能领域中的一个重要方向。它研究的是人类(自然)语言与计算机之间的交互。NLP的目的是让计算性能够理解、解析、天生人类语言,并且能够以故意义的方式回应和操作这些信息。
NLP的使命可以分为多个层次,包括但不限于:

  • 词法分析:将文天职解成单词或标记(token),并识别它们的词性(如名词、动词等)。
  • 句法分析:分析句子结构,理解句子中词语的关系,好比主语、谓语、宾语等。
  • 语义分析:试图理解句子的实际寄义,超越字面意义,捕获隐含的信息。
  • 语用分析:考虑上下文和对话背景,理解话语在特定情境下的使用目的。
  • 情感分析:检测文本中表达的情感倾向,比方正面、负面或中立。
  • 呆板翻译:将一种自然语言转换为另一种自然语言。
  • 问答体系:构建可以答复用户问题的体系。
  • 文本摘要:从大量文本中提取关键信息,天生简短的摘要。
  • 定名实体识别(NER):识别文本中提到的特定实体,如人名、地名、组织名等。
  • 语音识别:将人类的语音转换为计算机可读的笔墨格式。
NLP技能的发展依赖于算法的进步、计算能力的提升以及大规模标注数据集的可用性。近年来,深度学习方法,特殊是基于神经网络的语言模型,如BERT、GPT系列等,在许多NLP使命上取得了明显的乐成。随着技能的进步,NLP正在被应用到越来越多的领域,包括客户服务、智能搜刮、内容推荐、医疗康健等。
jieba分词的使用

1. 安装

  1. pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
导入
  1. import jieba
复制代码
查看路径
  1. jieba.__path__
复制代码

2. jieba分词模式



  • 精确模式: 把句子最精确的切分开, 比较适合文天职析. 默认精确模式.
  • 全模式: 把句子中所有可能成词的词都扫描出来, cut_all = True, 缺点: 速率快, 不能办理歧义
  • paddle: 使用百度的paddlepaddle深度学习框架. 简朴来说就是使用百度提供的分词模型. use_paddle=True.
  • 搜刮引擎模式: 在精确模式的底子上, 对长词再举行切分, 进步召回率, jieba.cut_for_search
  1. text = '我
  2. 中华人民共和国
  3. '
复制代码
2.1 精确模式

注意精确模式返回的是天生器
  1. gen = jieba.cut(text)
  2. next(gen)
复制代码
返回
  1. '我'
复制代码
  1. for word in gen:
  2.     print(word)
复制代码
返回
  1. 中华人民共和国
复制代码
转化为列表
  1. list(gen)
复制代码
返回
  1. ['我'
  2. , '爱', '中华人民共和国']
复制代码
大概使用lcut l=list 返回的就是列表了
  1. words = jieba.lcut(text)
  2. words
复制代码
  1. ['我'
  2. , '爱', '中华人民共和国']
复制代码
2.2 全模式

cut_all=True
  1. jieba.lcut(text, cut_all=True)
复制代码
  1. ['我'
  2. , '爱', '中华', '中华人民', '中华人民共和国', '华人', '人民', '人民共和国', '共和', '共和国']
复制代码
2.3 搜刮引擎模式

  1. jieba.lcut_for_search(text)
复制代码
  1. ['我'
  2. , '爱', '中华', '华人', '人民', '共和', '共和国', '中华人民共和国']
复制代码
2.4 词性标注

  1. from jieba import posseg
  2. posseg.lcut(text)
复制代码
  1. [pair('我'
  2. , 'r'), pair('爱', 'v'), pair('中华人民共和国', 'ns')]
复制代码
另一个示例
  1. text = '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向'
  2. jieba.lcut(text)
复制代码
返回
  1. ['自然语言',
  2. '处理',
  3. '是',
  4. '计算机科学',
  5. '领域',
  6. '与',
  7. '人工智能',
  8. '领域',
  9. '中',
  10. '的',
  11. '一个',
  12. '重要',
  13. '方向']
复制代码
暂时加一个词
  1. jieba.add_word('机器学习')
复制代码
对词频举行调整
  1. jieba.suggest_freq('机器学习')
复制代码


  • 对词频举行调整后,需要重新加载词典,才能使调整生效。
  • 频仍调整词频可能会对分词的正确性产生影响,使用时要谨慎。
2.5 加载自己的分词文件

  1. jieba.load_userdict('D:\.venv\Lib\site-packages\jieba\dict2.txt')
复制代码
3. 查看词频


  • 对文本举行分词处置惩罚。
  • 统计每个词语出现的频次。
示例代码:
  1. import jieba
  2. from collections import Counter# 待分词的文本text = "自然语言处置惩罚是计算机科学领域与人工智能领域中的一个重要方向"# 举行分词words = jieba.lcut(text)# 统计词频word_freq = Counter(words)# 查看词频for word, freq in word_freq.items():    print(f"{word}: {freq}")
复制代码

4. 关键词提取

  1. from jieba import analyse
  2. text = 'NLP技术的发展依赖于算法的进步、计算能力的提升以及大规模标注数据集的可用性。近年来,深度学习方法,特别是基于神经网络的语言模型,如BERT、GPT系列等,在许多NLP任务上取得了显著的成功。随着技术的进步,NLP正在被应用到越来越多的领域,包括客户服务、智能搜索、内容推荐、医疗健康等。'
复制代码
提取关键词, 实在就是根据tfidf算出来的值
  1. analyse.extract_tags(text, topK=10, withWeight=True)
  2. # 或
  3. analyse.tfidf(text, topK=10, withWeight=True)
复制代码

在分词的同时,返回词语的位置信息
  1. jieba.tokenize(sentence, mode='default', HMM=True)
复制代码
参数


  • sentence:这是一个必须的参数,代表要举行分词的字符串。
  • mode:该参数有两种可选模式。‘default’ 为默认模式,它接纳精确模式举行分词;‘search’ 是搜刮引擎模式,这种模式会对长词举行进一步切分,以适合搜刮引擎的需求。
  • HMM:这是一个布尔类型的参数,默认值为 True。它表现是否使用隐马尔可夫模型(HMM)来识别未登录词。
返回值
该方法会返回一个天生器,天生的每个元素是一个包含三个元素的元组,具体如下:


  • 第一个元素为分词后的词语。
  • 第二个元素是该词语在原句子中的起始位置。
  • 第三个元素是该词语在原句子中的结束位置。
示例代码
  1. gen = jieba.tokenize(text)
  2. for g in gen:
  3.     print(g)
复制代码
  1. ('NLP', 0, 3)
  2. ('技术', 3, 5)
  3. ('的', 5, 6)
  4. ('发展', 6, 8)
  5. ('依赖于', 8, 11)
  6. ('算法', 11, 13)
  7. ('的', 13, 14)
  8. ('进步', 14, 16)
  9. ('、', 16, 17)
  10. ('计算能力', 17, 21)
  11. ('的', 21, 22)
  12. ('提升', 22, 24)
  13. ('以及', 24, 26)
  14. ('大规模', 26, 29)
  15. ('标注', 29, 31)
  16. ('数据', 31, 33)
  17. ('集', 33, 34)
  18. ('的', 34, 35)
  19. ('可用性', 35, 38)
  20. ('。', 38, 39)
  21. ('近年来', 39, 42)
  22. (',', 42, 43)
  23. ('深度', 43, 45)
  24. ('学习', 45, 47)
  25. ('方法', 47, 49)
  26. (',', 49, 50)
  27. ('特别', 50, 52)
  28. ('是', 52, 53)
  29. ('基于', 53, 55)
  30. ('神经网络', 55, 59)
  31. ('的', 59, 60)
  32. ('语言', 60, 62)
  33. ('模型', 62, 64)
  34. (',', 64, 65)
  35. ('如', 65, 66)
  36. ('BERT', 66, 70)
  37. ('、', 70, 71)
  38. ('GPT', 71, 74)
  39. ('系列', 74, 76)
  40. ('等', 76, 77)
  41. (',', 77, 78)
  42. ('在', 78, 79)
  43. ('许多', 79, 81)
  44. ('NLP', 81, 84)
  45. ('任务', 84, 86)
  46. ('上', 86, 87)
  47. ('取得', 87, 89)
  48. ('了', 89, 90)
  49. ('显著', 90, 92)
  50. ('的', 92, 93)
  51. ('成功', 93, 95)
  52. ('。', 95, 96)
  53. ('随着', 96, 98)
  54. ('技术', 98, 100)
  55. ('的', 100, 101)
  56. ('进步', 101, 103)
  57. (',', 103, 104)
  58. ('NLP', 104, 107)
  59. ('正在', 107, 109)
  60. ('被', 109, 110)
  61. ('应用', 110, 112)
  62. ('到', 112, 113)
  63. ('越来越', 113, 116)
  64. ('多', 116, 117)
  65. ('的', 117, 118)
  66. ('领域', 118, 120)
  67. (',', 120, 121)
  68. ('包括', 121, 123)
  69. ('客户服务', 123, 127)
  70. ('、', 127, 128)
  71. ('智能', 128, 130)
  72. ('搜索', 130, 132)
  73. ('、', 132, 133)
  74. ('内容', 133, 135)
  75. ('推荐', 135, 137)
  76. ('、', 137, 138)
  77. ('医疗', 138, 140)
  78. ('健康', 140, 142)
  79. ('等', 142, 143)
复制代码
注意事项


  • 该方法返回的是天生器,若要多次使用结果,可将天生器转换为列表。
  • 位置信息是基于字符的,即起始和结束位置是字符的索引。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表