Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请解决librime地球拼音声调(数字)对词频(数字)的影响? #507

Closed
wwzrh opened this issue Nov 18, 2021 · 29 comments
Closed

Comments

@wwzrh
Copy link

wwzrh commented Nov 18, 2021

在“https://github.com/rime/weasel/issues/678 请帮忙测试一下小狼亳词频问题:”

经测试terra pinyin.dict.yaml地球拼音

码表词频排列:
|
今年 jin1 nian2 50127
近年 jin4 nian2 15720
瑾年 jin3 nian2 9
锦年 jin3 nian2 3

在初始部署下,没有输调情况下,输入显示为:
https://github.com/rime/weasel/issues/678

不是:今年→近年→瑾年→锦年
而是:今年→瑾年→近年→锦年

测试小狼亳【朙月拼音】【袖珍簡化字拼音】和手机同文Trime的都是正确显示“今年→近年→瑾年→锦年|”,
这体现了,不是小狼亳的问题,而是librime的bug问题。
@lotem 大哥解决!

@LEOYoon-Tsaw
Copy link
Member

用了八股文否?

@wwzrh
Copy link
Author

wwzrh commented Nov 18, 2021

@LEOYoon-Tsaw
.dict.yaml和essay.txt的格式都试用过了都是
“今年→瑾年→近年→锦年"
或是“今年→锦年→近年→瑾年"

@lotem
Copy link
Member

lotem commented Nov 18, 2021

有測試數據嗎?

@wwzrh
Copy link
Author

wwzrh commented Nov 18, 2021

没有

@lotem
Copy link
Member

lotem commented Nov 18, 2021

出廠的詞序就很好啊,說明librime可以正確地爲不同聲調按固態詞典的詞頻排序。

沒有數據,那怎麼驗證問題呢。
你自己檢查檢查吧,確保詞頻寫入正確,排除用戶詞典、語言模型等影響詞序的因素。

@wwzrh
Copy link
Author

wwzrh commented Nov 19, 2021

image

@ShikiSuen
Copy link
Contributor

请给地球拼音建立一个影分身方案,然后在这个方案当中停用八股文。
在这个前提下再行测试?

P.S.: 我在用鼠须管原厂注音(是用地球拼音的音韵库转译到注音的),没发现后选词内有「瑾年」。
image

@wwzrh
Copy link
Author

wwzrh commented Nov 27, 2021

@lotem
重新测试terra pinyin.dict.yaml地球拼音的词频问题:
1、terra_pinyin.schema.yaml方案不改;
2、terra pinyin.dict.yaml词典只有以下4个词:
今年(词频999)→近年(词频666)→瑾年(词频333)→锦年(词频111)

小狼亳测试一


name: terra_pinyin
version: "2021.08.05"
sort: by_weight
columns:

  • text
  • code
  • weight
    ...

今年 jin1 nian2 999
近年 jin4 nian2 666
瑾年 jin3 nian2 333
锦年 jin3 nian2 111
(以下空白)
1

结果“今年→瑾年→近年→锦年"

小狼亳测试二


name: terra_pinyin
version: "2021.08.05"
sort: by_weight
columns:

  • text
  • code
  • weight
    ...

今年 jin1 nian2 999
近年 jin4 nian2 666 #
瑾年 jin3 nian2 333
锦年 jin2 nian2 111 #锦(jin3)改为(jin2)
(以下空白)
2

结果“今年→锦年→瑾年→近年"

小狼亳测试三


name: terra_pinyin
version: "2021.08.05"
sort: by_weight
columns:

  • text
  • code
  • weight
    ...

今年 jin1 nian2 999
近年 jin2 nian2 666 #近(jin4)改为(jin2)
瑾年 jin3 nian2 333
锦年 jin3 nian2 111 #
(以下空白)
3

结果“今年→近年→瑾年→锦年"
//////////////////////
这是怎样的回事????
难道要改拼音(违背事实)吗!

@ShikiSuen
Copy link
Contributor

ShikiSuen commented Nov 27, 2021

最近玩了几天小麦注音。
原版词库里面有输入法作者故意掺入的政治宣传私货,被我用脚本彻底洗干净之后独立成一个安全分支了。
然而那个安全分支目前是没有词库的。词库被我单独脱出来维护了:
https://github.com/ShikiSuen/vchewing-lingual-data/tree/main/imedata/mcbopomo

你看 /Data-CHS(或CHT)/phrase.occ 这东西,我敢打赌这东西比 RIME 的八股文还要聪明一点。

不过这间接证明一个问题:小麦注音与 RIME 的八股文都没有针对读音定义词频。
小麦注音会在编译的时候直接生成一个 data.txt 放在自己的 application bundle 当中,那里面针对每个汉字的不同读音是会做出词频区分的。相关权重由三组 heterophony 档案来控制。

Rime 目前这样在地球拼音的音运库当中单独逐一对每一笔记录使用百分比加权的方法,虽看似精准,却未免太被动。

你现在遇到的问题,没准使用我维护的这个仓库的 phrase.occ 的内容当做八股文的话会有转机。
但请注意其繁体版是台湾繁体(且专门针对香港与康熙字做了往死里降的降频)。
怕出乱子的话,请用我那维护仓库里面的简体版 phrase.occ。

(简体版的音韵表与 PHRASE.OCC 是我亲自维护的,包括化学元素在内的很多生僻用字都是正确指定到万国码上的、而非 PUA。其词频数据源自小麦注音原始仓库,自然是被我做过安全处理的。)

@LEOYoon-Tsaw
Copy link
Member

我知啦,因爲你是在用簡拼。
對於「地球拼音」來說,帶調才是全拼,省略任何部份都是簡拼。簡拼的排序是基於全拼排序的。
當程式把jin1、jin2、jin3都簡成jin時,jin1>jin2>jin3,所以排序是這樣的。只有當全拼全同時,才會按詞頻排序。
這是Intended behavior,搜索詞頻是一件耗時的事,如果在簡拼時就直接按詞頻排序,會導致一些情況下性能很差,例如只輸入一個「b」,把所有以「b」開頭的字都找出來,可能有上萬個,然後排序,是非常不經濟的。

如果你不要輸入聲調,就用明月拼音,如果要輸入聲調才用地球拼音。如果是「偶爾」才輸入一下聲調,請切換方案,或者在方案中添加多個translator實現。

此案了結。

@wwzrh
Copy link
Author

wwzrh commented Nov 28, 2021

1\采用“- abbrev/^([a-z]+)[0-5]$/$1/”简拼法则,结果还是上面“小狼亳测试一”的结果;
2\“简拼”应该可以能按词频来检索词典吧??

@wwzrh
Copy link
Author

wwzrh commented Nov 28, 2021

@ShikiSuen
小麦注音没有Windows版吧?开源项目不能说政治化的,八股文和自带的我不用,我用https://www.unicode.org/Public/14.0.0/ucd/Unihan.zip 里kTGHZ2013《通用规范汉字字典》字音,
自制词库,现在我最需要的一个合理的平台和一份最佳的词语排序(词频)。

@ShikiSuen
Copy link
Contributor

@wwzrh 他就故意摻的私貨(不只這些,而是從第一個 commit 裡面的詞庫開始就有了):
openvanilla/McBopomofo@0d58b4b

但因為是 MIT 專案,所以我們這些用家將這些內容刪掉就好。
只是因為從第一個 commit 開始就被摻了私貨的原因,我用 git filter-repo (之前用 git filter-branch) 處理過後的 fork 倉庫無法與上游直接同步。這比較頭痛,畢竟我有時候發現的一些產品問題不能走 pull request 了、而是只能在 issue thread 內提出。

@LEOYoon-Tsaw
Copy link
Member

1\采用“- abbrev/^([a-z]+)[0-5]$/$1/”简拼法则,结果还是上面“小狼亳测试一”的结果;
2\“简拼”应该可以能按词频来检索词典吧??

  1. 當然,都是簡拼
  2. 不能,全拼優先,全拼全同才用詞頻

@ShikiSuen
Copy link
Contributor

稍微吐槽一下好了:
地球拼音與明月拼音的詞庫檔案完全可以合併,在 CSV 架構上將兩者各自的詞頻分開計算即可。
或者將任何對詞頻的追加權重調整的參數獨立為一個全新的 patch 檔案、方便集中管理。
明月拼音在這種情況下可以選擇忽略掉詞庫內的音調資訊。

這樣能省很多筆空間,特別是在基礎音韻表支援全字庫那種超過十萬漢字的情況下。

@lotem
Copy link
Member

lotem commented Nov 28, 2021

我知啦,因爲你是在用簡拼。
簡拼的排序是基於全拼排序的。
例如只輸入一個「b」,把所有以「b」開頭的字都找出來,可能有上萬個,然後排序,是非常不經濟的。

​這個說法不對,table_translator的前綴編碼聯想纔是只取部分結果、按編碼排序的。拼音輸入法不是這樣。
以上面的例子來說,拼寫運算的 abbrev運算產生一個輸入碼b,輸入b則完整匹配此輸入碼。
(待續)

@lotem
Copy link
Member

lotem commented Nov 28, 2021

地球拼音與明月拼音的詞庫檔案完全可以合併,在 CSV 架構上將兩者各自的詞頻分開計算即可。 或者將任何對詞頻的追加權重調整的參數獨立為一個全新的 patch 檔案、方便集中管理。 明月拼音在這種情況下可以選擇忽略掉詞庫內的音調資訊。

這樣能省很多筆空間,特別是在基礎音韻表支援全字庫那種超過十萬漢字的情況下。

地球拼音的註音數據相對於朙月拼音相對不足,補足這個差距需要大量工作。

@ShikiSuen
Copy link
Contributor

@lotem 那就先用全字庫的讀音數據將缺少的字的讀音先補上。
我的 GitHub 帳號內 vchewing-lingual-data 有個 ODT 電子表格檔案可以用 LibreOffice 讀入,裡面有全字庫超過十萬個漢字的單字讀音檢索。
但這個電子表格請勿用微軟 Excel 讀入,否則所有 jun1 jun2 jun3 jun4 jun5 拼音都會被轉成日期、無法還原。

@ShikiSuen
Copy link
Contributor

P.S.: 我收集的全字庫數據來自 2020 年底的最新版,理論上已經包含了所有簡體中文字與傳統漢字……但可能會有漏收某些簡體中文「超冷僻字」的情況。
我上文提到的 ODT 電子表格檔案裡面還有一個表,裡面有全部的通用規範漢字表對應的台規繁體中文漢字+兩岸三地全部的化學元素漢字。(通用規範漢字表漏收了個別的化學元素漢字。)

@lotem
Copy link
Member

lotem commented Nov 28, 2021

不止單個漢字。還有包含多音字的詞語的註音。

我覺得不要在這裏繼續偏題了。如果有興趣您可以開一個新的試驗項目。我覺得這是個大工程。
此外一些用戶要自己添加不帶調拼音碼表,再加上需要兼容已有的用戶詞典,現在必須分列。
將來數據完備,再開發相應的詞典升級工具,纔有可能完全合併。

@ShikiSuen
Copy link
Contributor

@lotem 那這就得寫腳本轉換了。
自動轉換了之後還要自動列出來、供人工篩查。

@lotem
Copy link
Member

lotem commented Nov 28, 2021

@ShikiSuen 你覺得啥都有了,那不妨另做一個方案,先用起來。各方面都有優勢的話,大家自然會採用。
但如果目標是合併已有的兩個方案的詞典,那就得保證數據遷移之後輸入質量不下降吧。比較兩份碼表補足差異,可比單獨維護一份新碼表工作量大。

@ShikiSuen
Copy link
Contributor

@lotem 正好我想跟您确认一下:
明月拼音的词库内容是包含了地球拼音的全部内容吗?还是说地球拼音有自己独特的内容?

@ShikiSuen

This comment has been minimized.

@lotem
Copy link
Member

lotem commented Nov 28, 2021

@lotem 正好我想跟您确认一下: 明月拼音的词库内容是包含了地球拼音的全部内容吗?还是说地球拼音有自己独特的内容?

當然不包含。至少缺少多音字在詞語中聲調消歧的數據,比如數字(shù zì)。另外兩份詞典各自經過衆多次編輯、導入詞條的操作。

@ShikiSuen

This comment has been minimized.

@ShikiSuen

This comment has been minimized.

@wwzrh
Copy link
Author

wwzrh commented Nov 29, 2021

@lotem 解决了吗?能编译一个rime来用用吗?

@LEOYoon-Tsaw
Copy link
Member

好像是修好了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants