例如:提供一个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)
代码(需安装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')
最终处理效果
有用请采纳O(∩_∩)O哈哈~
不知道你这个问题是否已经解决, 如果还没有解决的话: