python使用jieba分词踩坑日记-词性踩坑

2023-12-30 15:53:48

最近自己写个python分词的工具,分割之前导入了一些自己定义的词,结果导致词汇根本没有。
如果各位打算自定义分词词性,记得具体的了解词性的信息。

jieba 分词的词性标注中,每个词性标签代表一类词汇。

词性标签以及它们通常所代表的词汇类型的详细说明:

  1. w(标点符号):

    • 包括常见的中文和英文标点,如逗号(,)、句号(。)、冒号(:)、分号(;)、引号(“”)、括号(())、问号(?)、感叹号(!)等。
  2. x(字符串,无法识别的词语):

    • 包括无法正常识别为其他词性的词语,例如网络用语、外来词、专有名词、缩写、表情符号、特殊符号等。
  3. y(语气词):

    • 中文中用来表达语气的词,如“啊”、“哦”、“呢”、“吧”、“啦”、“嘛”、“呀”等。
  4. z(状态词):

    • 用来描述事物状态的词语,如“上”、“下”、“开”、“关”、“忙”、“空”等。这类词汇在中文中并不多见,且在不同的分词系统中可能有所不同。
  5. un(未知词):

    • jieba 分词中并没有 un 这个词性标签,可能是一个打字错误或是其他系统中的标签。在 jieba 中,无法识别的词通常会被标为 x
  6. m(数词):

    • 表示数量的词语,如“一”、“两”、“三”、“十”、“百”、“千”、“万”、“亿”等,以及阿拉伯数字。

请注意,具体的词语及其对应的词性可能会根据上下文和具体的分词算法有所不同。如果你想要获取具体每个词性标签对应的词汇列表,你可以对一大段包含多种词汇的文本进行分词和词性标注,然后根据词性进行筛选。这里是一个简单的示例代码,用于筛选出特定词性的词汇:

import jieba.posseg as pseg

# 示例文本
text = "我爱北京天安门,天安门上太阳升。哦,你看那是什么?那是999朵美丽的花。"

# 分词并标注词性
words = pseg.cut(text)

# 对应词性的词汇集合
words_by_flag = {
    'w': [],
    'x': [],
    'y': [],
    'z': [],
    'm': []
}

# 遍历分词结果,按词性分类
for word, flag in words:
    if flag in words_by_flag:
        words_by_flag[flag].append(word)

# 打印结果
for flag, words in words_by_flag.items():
    print(f"词性 '{flag}': {words}")

运行这个代码将给你一个大致的词汇列表,展示了在你的示例文本中每个词性标签对应的词汇。你可以用更长的文本来获得更全面的列表。

如果分词分不出来数据,大概率是判断所导致数据丢失了。

文章来源:https://blog.csdn.net/qq_43805552/article/details/135305165
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。