mirror of
https://github.com/d0zingcat/rime-ice.git
synced 2026-06-04 23:26:50 +00:00
dict: 日常更新
This commit is contained in:
@@ -11,19 +11,23 @@ import (
|
||||
|
||||
func main() {
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
|
||||
if len(os.Args) > 1 {
|
||||
if os.Args[1] == "sort" {
|
||||
switch os.Args[1] {
|
||||
case "s":
|
||||
goto SORT
|
||||
}
|
||||
if os.Args[1] == "temp" {
|
||||
case "t":
|
||||
rime.Temp()
|
||||
return
|
||||
case "p":
|
||||
rime.CheckPolyphone(rime.BasePath)
|
||||
return
|
||||
case "tp":
|
||||
rime.Pinyin(filepath.Join(rime.RimeDir, "cn_dicts/temp"))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 临时
|
||||
rime.Temp()
|
||||
|
||||
// Emoji 检查和更新
|
||||
rime.CheckAndGenerateEmoji()
|
||||
fmt.Println("--------------------------------------------------")
|
||||
|
||||
@@ -7,14 +7,17 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
// 一些临时用的函数
|
||||
|
||||
func Temp() {
|
||||
// defer os.Exit(11)
|
||||
//
|
||||
// GeneratePinyinTest("你的行动力")
|
||||
// GeneratePinyinTest("都挺长的")
|
||||
// GeneratePinyinTest("血条长")
|
||||
|
||||
findP(BasePath, "谁")
|
||||
}
|
||||
|
||||
// 列出字表中多音字的状况:是否参与自动注音
|
||||
@@ -83,3 +86,55 @@ func polyphone() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 在字典中找到此行是否包含同义多音字,如果包含切长度大于等于3,从文件中删除这行,并将所有删除的行写入到 1.txt 中
|
||||
func findP(dictPath string, ch string) {
|
||||
// open file
|
||||
file, err := os.OpenFile(dictPath, os.O_RDWR, 0666)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
outFile, err := os.Create("1.txt")
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
defer outFile.Close()
|
||||
|
||||
lines := make([]string, 0)
|
||||
|
||||
isMark := false
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if !isMark {
|
||||
lines = append(lines, line)
|
||||
if line == mark {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
if line == "" || strings.HasPrefix(line, "#") {
|
||||
lines = append(lines, line)
|
||||
continue
|
||||
}
|
||||
parts := strings.Split(line, "\t")
|
||||
if len(parts) != 3 {
|
||||
log.Fatalln("len(parts) != 3", line)
|
||||
}
|
||||
text := parts[0]
|
||||
if strings.Contains(text, ch) && utf8.RuneCountInString(text) >= 3 {
|
||||
outFile.WriteString(line + "\n")
|
||||
} else {
|
||||
lines = append(lines, line)
|
||||
}
|
||||
}
|
||||
|
||||
// 从 lines 重新写入 file
|
||||
file.Truncate(0)
|
||||
file.Seek(0, 0)
|
||||
for _, line := range lines {
|
||||
file.WriteString(line + "\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,8 +44,6 @@ var onlyOne = map[string]string{
|
||||
"私钥": "si yao",
|
||||
"甲壳": "jia ke",
|
||||
"掉色": "diao se",
|
||||
"变色": "bian se",
|
||||
"上色": "shang se",
|
||||
"怎么着": "zen me zhe",
|
||||
"这么着": "zhe me zhe",
|
||||
"那么着": "na me zhe",
|
||||
|
||||
94
others/script/rime/polyphone.go
Normal file
94
others/script/rime/polyphone.go
Normal file
@@ -0,0 +1,94 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// 同义多音字
|
||||
var polyphonicWords = []string{
|
||||
"谁",
|
||||
"血",
|
||||
"熟",
|
||||
"掴",
|
||||
"爪",
|
||||
"薄",
|
||||
"剥",
|
||||
"哟",
|
||||
"嚼",
|
||||
"忒", // te 不是,tui 和 tei 是
|
||||
"密钥",
|
||||
"公钥",
|
||||
"私钥",
|
||||
"甲壳",
|
||||
"掉色",
|
||||
}
|
||||
|
||||
// 不检查的词汇
|
||||
var polyphonicWordsFilter = []string{
|
||||
"咀嚼",
|
||||
"薄暮", "薄地", "薄海", "薄酒", "薄礼", "薄面", "薄命", "薄情", "薄弱", "薄田", "薄物细故", "薄幸", "薄情", "薄葬", "厌薄", "厚积薄发", "履薄临深", "德薄望轻", "菲薄", "履薄", "孤军薄旅", "薄太后",
|
||||
"剥离", "剥夺", "剥削", "剥落", "剥蚀", "剥啄",
|
||||
"熟稔", "黄熟",
|
||||
}
|
||||
|
||||
// CheckPolyphone 检查 base、ext 中同义多音字是否有两种读音
|
||||
// 例如「谁的」应该同时存在 shei de 与 shui de 两种读音
|
||||
func CheckPolyphone(dictPath string) {
|
||||
file, err := os.Open(dictPath)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 将含有同义多音字的词汇放入,key 为词汇,value 为注音
|
||||
// 如果注音数组只有一个,则应该补充其他读音
|
||||
m := make(map[string][]string)
|
||||
|
||||
isMark := false
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if !isMark {
|
||||
if strings.HasPrefix(line, mark) {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
if line == "" || strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
parts := strings.Split(line, "\t")
|
||||
if len(parts) != 3 {
|
||||
continue
|
||||
}
|
||||
text, code := parts[0], parts[1]
|
||||
if containsPolyphonicWordsFilter(text) {
|
||||
continue
|
||||
}
|
||||
for _, word := range polyphonicWords {
|
||||
if strings.Contains(text, word) {
|
||||
m[text] = append(m[text], code)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历 m,输出单数读音的词汇
|
||||
for text, codes := range m {
|
||||
if len(codes)%2 != 0 {
|
||||
fmt.Println(text)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func containsPolyphonicWordsFilter(text string) bool {
|
||||
for _, filter := range polyphonicWordsFilter {
|
||||
if strings.Contains(text, filter) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -1,4 +1,18 @@
|
||||
# 在 # -_- 上面是错词;下面是包含错词但不是错词。
|
||||
元文件
|
||||
桃花园
|
||||
桃花缘
|
||||
噌地
|
||||
伶牙利
|
||||
灵牙利
|
||||
碧雪丹心
|
||||
气嘘嘘
|
||||
喘嘘嘘
|
||||
长统袜
|
||||
长统靴
|
||||
铢铢较量
|
||||
量角规
|
||||
一天一炖
|
||||
搏彩
|
||||
知书识理
|
||||
识理知书
|
||||
@@ -1332,6 +1346,8 @@
|
||||
年青
|
||||
谐调
|
||||
呆会
|
||||
呆在
|
||||
呆着
|
||||
不惟
|
||||
赢利
|
||||
作主
|
||||
@@ -3608,3 +3624,4 @@
|
||||
六西格玛项目
|
||||
六西格玛黑带
|
||||
精益六西格玛
|
||||
图元文件
|
||||
|
||||
Reference in New Issue
Block a user