吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2198|回复: 29
上一主题 下一主题
收起左侧

[Python 原创] 完全使用GPT写的词库生成软件,支持百度、搜狗、手心输入法

  [复制链接]
跳转到指定楼层
楼主
ZakaryTime 发表于 2024-8-24 17:41 回帖奖励
一直以来想维护一个自己的联系人以及专业词库,每个输入法的词库格式不同。最开始使用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

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
yangxiucai + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| ZakaryTime 发表于 2024-8-25 15:08 |楼主
gylgb 发表于 2024-8-25 10:45
不太明白,能详细点吗

0. 访问Github下载代码
1. 安装Python
2. 使用pip install pypinyin安装库
3. 在data目录下创建你需要生成的词库的文本文件,每行一个短语
4. 使用Python main.py运行脚本。或者直接双击运行对应的批处理文件(批处理文件在Github上)
5. 等待词库生成,然后导入到对应的输入法
推荐
 楼主| ZakaryTime 发表于 2024-8-25 15:09 |楼主
虚空先森 发表于 2024-8-25 12:02
已安装Python,如何运行哦,有大佬截图看一下吗

0. 访问Github下载代码
1. 安装Python
2. 使用pip install pypinyin安装库
3. 在data目录下创建你需要生成的词库的文本文件,每行一个短语
4. 使用Python main.py运行脚本。或者直接双击运行对应的批处理文件(批处理文件在Github上)
5. 等待词库生成,然后导入到对应的输入法
沙发
justwz 发表于 2024-8-24 21:17
3#
hehe549124 发表于 2024-8-24 23:02
具体用途是啥呢?
4#
 楼主| ZakaryTime 发表于 2024-8-24 23:39 |楼主
justwz 发表于 2024-8-24 21:17
有词库后是输入简单点吗

能够提高准确度,打出来那个短语就能直接出来,避免一个一个单字选择
5#
 楼主| ZakaryTime 发表于 2024-8-24 23:40 |楼主
hehe549124 发表于 2024-8-24 23:02
具体用途是啥呢?

比如说你手上有一个联系人名单,就可以根据这个名单生成词库,导入之后输入法就可以直接打出这些名字。
6#
小智xyz 发表于 2024-8-25 00:31
ZakaryTime 发表于 2024-8-24 23:40
比如说你手上有一个联系人名单,就可以根据这个名单生成词库,导入之后输入法就可以直接打出这些名字。

这不是最基础的功能吗我是好像现在的输入法都有吧
7#
h1989 发表于 2024-8-25 00:45
什么根据公开的gitub网站上gpt4创立本地gpt4???
8#
 楼主| ZakaryTime 发表于 2024-8-25 07:54 |楼主
小智xyz 发表于 2024-8-25 00:31
这不是最基础的功能吗我是好像现在的输入法都有吧

手机可以直接访问通讯录,电脑不行,而且不仅仅是通讯录,可以找自己需要的任意内容生成词库,我是记者就可以把我们区域的政府机构全称,标准化简称,主要领导名字、职务,领导人讲话等内容倒入词库。
9#
 楼主| ZakaryTime 发表于 2024-8-25 07:56 |楼主
h1989 发表于 2024-8-25 00:45
什么根据公开的gitub网站上gpt4创立本地gpt4???

你说的内容,帖子里面没有任何相关描述,不知道你在说什么。
10#
Liyang001013 发表于 2024-8-25 09:14
现在都那么牛逼了嘛
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 16:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表