如何用python写一个简单的中文词性分析器?

例如:提供一个word,运行python,它会自动把word中的关联词标记成红色。
要求:关联词来自字典,存储在python中。尽量不使用库,如果使用请用自带库。
关联词举例:不仅而且、虽然但是、因为所以等等。

要实现中文词性分析器,您可以使用 Python 的内置库 jieba 来进行分词,然后根据您的字典来识别关联词,并将其标记出来。以下是一个简单的实现示例:

import jieba

# 定义关联词
connectors = ["不仅而且", "虽然但是", "因为所以"]

# 加载自定义词典
jieba.load_userdict("my_dict.txt")

# 定义标记颜色
COLOR = '\033[1;31;40m'
RESET_COLOR = '\033[0m'

# 获取用户输入的词
word = input("请输入一个中文词:")

# 分词
words = jieba.lcut(word)

# 遍历分词结果,标记关联词
for i in range(len(words)-1):
    # 判断当前词与下一个词组成的组合是否为关联词
    if words[i]+words[i+1] in connectors:
        # 如果是,将组合标记成红色
        words[i] = COLOR + words[i]
        words[i+1] = words[i+1] + RESET_COLOR

# 输出结果
print(" ".join(words))



代码
words_dict = { "不仅而且": ["conj", "linking"], "虽然但是": ["conj", "linking"], "因为所以": ["conj", "linking"] }

word = input("请输入一个词: ")

for key in words_dict: if key in word: print("\033[1;31;40m {} \033[0m".format(key)) else: print(key)

先来一手颜色对应的RGB编码镇图,实际操作当中需要找到对应的编码并做出相应的变换
例如红色:RGBColor(255,0,0)

img

代码(需安装python-docx)

import docx
from docx.shared import RGBColor

rule = {
    RGBColor(255,0,0) : '虽然但是',
    RGBColor(0,255,0) : '不仅而且' ,
    RGBColor(0,0,255) : '因为所以' }                  ###关键字及颜色,注意key必须为RGBColor类,请参照对应表赋值。

file=docx.Document(r'C:\Users\MSI-NB\PycharmProjects\pythonProject\中文分词器.docx')     ####绝对路径最佳

def set_run(run) :
    run.font.size =font_size
    run.bold = bold
    run.font.color.rgb= color
for key in rule.keys() :
    for paragraph in file.paragraphs :
        for r in paragraph.runs :
            if rule.get(key) not in r.text :
                pass
            font_size= r.font.size
            bold =r.bold
            color = r.font.color.rgb
            rest = r.text.split(rule.get(key))
            r.text=''
            for text in rest[:-1] :
                run=paragraph.add_run(text=text)
                set_run(run)
                run = paragraph.add_run(rule.get(key))
                run.font.size = font_size
                run.bold = bold
                run.font.color.rgb =key
            run = paragraph.add_run(rest[-1])
            set_run(run)
file.save('处理后.docx')

最终处理效果

img

有用请采纳O(∩_∩)O哈哈~

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^