基于 python 的文本颜色词:一个优雅的解决方案
Color words in text based python: an elegant solution
Python 今日挑战。我正在读取带有格式化文本(spaces、新行、标点符号)的输入文件。我想按原样保留文本,同时根据某些条件突出显示某些单词。
然后控制台打印带有颜色高亮字词的文本。
代码在这里,首先是应该突出显示的单词集。
diff=set(g_word_counts.keys()).difference(set(t_word_index.keys()))
为了将文本中的单词与此集合进行比较,我降低了它,这给出了
colored_text=""
for t in generated_text.lower().split():
if t in diff:
colored_text+=colored(t, 'green')
else:
colored_text+=t
colored_text+=" "
print(colored_text)
结果显然都是小写的,这不太好。此外,我不仅想拆分白色 space,还想拆分任何标点符号,我尝试根据 Splitting the sentences in python
import re
def to_words(text):
return re.findall(r'\w+', text)
但在这里它又会小写所有内容并重建没有标点符号的文本。
保持格式、颜色和打印不变的优雅高效方式?
奖金:有没有办法打印到文本文件中,很好地突出显示单词?现在这给了 un-nice
[32mdémoniais[0m en la foule ou la couronnement à [32ml’enchance[0m de la piété,
pour cette fois de ce qui a simule comme le capital et départ du [32mdépour[0m de la [32msubissement[0m
你可以使用colorama:pip install colorama
这是将其导入项目的方式:from colorama import Fore,Back
这就是您的使用方式:print(f"{Fore.Green}Hello world!{Fore.RESET}"
我清理文本,在标点符号周围添加空格
def clean_input_text(text):
w = re.sub(r"([?.!,;¿’])", r" ", text)
w = re.sub(r'[" "]+', " ", w)
return w
然后处理文本的 .split()
# color new words
colored_text=""
for t in generated_text.split():
if t in diff:
colored_text+=colored(t, 'green')
else:
colored_text+=t
colored_text+=" "
最后我围绕标点符号进行了排列
colored_text = colored_text.replace(" . ", ". ")
colored_text = colored_text.replace(" , ", ", ")
colored_text = colored_text.replace(" ! ", "! ")
colored_text = colored_text.replace(" ? ", "? ")
colored_text = colored_text.replace(" ’ ", "’")
Python 今日挑战。我正在读取带有格式化文本(spaces、新行、标点符号)的输入文件。我想按原样保留文本,同时根据某些条件突出显示某些单词。
然后控制台打印带有颜色高亮字词的文本。
代码在这里,首先是应该突出显示的单词集。
diff=set(g_word_counts.keys()).difference(set(t_word_index.keys()))
为了将文本中的单词与此集合进行比较,我降低了它,这给出了
colored_text=""
for t in generated_text.lower().split():
if t in diff:
colored_text+=colored(t, 'green')
else:
colored_text+=t
colored_text+=" "
print(colored_text)
结果显然都是小写的,这不太好。此外,我不仅想拆分白色 space,还想拆分任何标点符号,我尝试根据 Splitting the sentences in python
import re
def to_words(text):
return re.findall(r'\w+', text)
但在这里它又会小写所有内容并重建没有标点符号的文本。
保持格式、颜色和打印不变的优雅高效方式?
奖金:有没有办法打印到文本文件中,很好地突出显示单词?现在这给了 un-nice
[32mdémoniais[0m en la foule ou la couronnement à [32ml’enchance[0m de la piété,
pour cette fois de ce qui a simule comme le capital et départ du [32mdépour[0m de la [32msubissement[0m
你可以使用colorama:pip install colorama
这是将其导入项目的方式:from colorama import Fore,Back
这就是您的使用方式:print(f"{Fore.Green}Hello world!{Fore.RESET}"
我清理文本,在标点符号周围添加空格
def clean_input_text(text):
w = re.sub(r"([?.!,;¿’])", r" ", text)
w = re.sub(r'[" "]+', " ", w)
return w
然后处理文本的 .split()
# color new words
colored_text=""
for t in generated_text.split():
if t in diff:
colored_text+=colored(t, 'green')
else:
colored_text+=t
colored_text+=" "
最后我围绕标点符号进行了排列
colored_text = colored_text.replace(" . ", ". ")
colored_text = colored_text.replace(" , ", ", ")
colored_text = colored_text.replace(" ! ", "! ")
colored_text = colored_text.replace(" ? ", "? ")
colored_text = colored_text.replace(" ’ ", "’")