好友
阅读权限10
听众
最后登录1970-1-1
|
一直以来想维护一个自己的联系人以及专业词库,每个输入法的词库格式不同。最开始使用Excel进行生成,感觉很麻烦,于是使用AI和Python搞一个脚本,实在没想到AI如此强大,写出来的脚本就没报过错,功能也完全符合预期。于是分享给大家,一是分享给对于词库和我有同样需求的人,二是希望大家都能够使用Ai编写自己需要的脚本。
脚本只经过了初步测试,符合我自己的需求,有其他需求请自行修改(也是一个学习的过程),Bug能修就修,修不了我也没办法。
脚本功能:遍历data目录下的所有文件(忽略-开头的文件),并根据输入的命令行参数输出手心输入法、搜狗输入法、百度输入法词库。支持多音字。
命令行参数:baidu、sougou、shouxin
PS:data目录下的文件编码为UTF-8,每一行一个词。
[Github地址](https://github.com/MisterZakary/input_method_thesaurus_generation/blob/main/main.py)
代码如下
```Python
# 脚本功能:遍历data目录下的所有文件(忽略-开头的文件),并根据输入的命令行参数输出手心输入法、搜狗输入法、百度输入法词库。支持多音字。
# 命令行参数:baidu、sougou、shouxin
# data目录下的文件编码为UTF-8,每一行一个词
import os
import argparse
from pypinyin import pinyin, Style
# 生成拼音
def convert_to_pinyin(text):
pinyin_list = pinyin(text, style=Style.NORMAL, heteronym=True,errors="ignore")
pinyin_str = "'".join([''.join(char) for char in pinyin_list])
return pinyin_str
# 写入文件
def read_file_in_chunks(file_path, output_file_name, output_encoding, output_format, chunk_size=100):
with open(file_path, 'r', encoding='utf-8') as file:
lines = file.readlines()
if lines[-1] == '\n':
lines = lines[:-1] # 如果最后一行是空白行,则删除
for line in lines:
pinyin_line = convert_to_pinyin(line.strip())
if output_format == 'baidu' or output_format == 'shouxin':
new_line = f"{line.strip()}\t{pinyin_line}\t3"
elif output_format == 'sougou':
new_line = f"{pinyin_line}\t{line.strip()}"
with open(output_file_name, "a", encoding=output_encoding) as output_file:
output_file.write(new_line + '\n')
# 添加命令行参数
parser = argparse.ArgumentParser(description='请输入你要生成的词库类型,sougou、baidu、shouxin')
parser.add_argument('output_format', choices=['baidu', 'shouxin', 'sougou'], help='Choose the output format')
args = parser.parse_args()
# 根据命令行参数选择输出文件名、编码格式和格式
if args.output_format == 'baidu':
output_file_name = '百度.txt'
output_encoding = 'utf-16'
output_form |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|