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

[IME辞書] 同一の変換読みが2つ以上あるとMS-IMEでインポートエラー #151

Open
Guest126 opened this issue Oct 26, 2021 · 4 comments
Assignees
Labels
bug Something isn't working help wanted Extra attention is needed IME

Comments

@Guest126
Copy link
Contributor

Guest126 commented Oct 26, 2021

アサルトリリィ非公式オープン拡張辞書をMS-IMEでインポートした際に、729語中1語がエラーのため除外されてしまいます。

スクリーンショット 2021-10-26 15 40 59

「海堂・ベアトリス・千春」と「大中臣千春」で下の名前が同じため、後者の辞書エントリがエラーとなってしまうようです。

assaultlily-dic.dctx

    <ns1:DictionaryEntry>
		<ns1:PartOfSpeech>Name-Given</ns1:PartOfSpeech>
		<ns1:OutputString>千春</ns1:OutputString>
		<ns1:InputString>ちはる</ns1:InputString>
		<ns1:CommentData1>教導官</ns1:CommentData1>
		<ns1:CommentData2>LG情報なし</ns1:CommentData2>
		<ns1:CommentData3>私立ルドビコ女学院</ns1:CommentData3>
		<ns1:Priority>0</ns1:Priority>
		<ns1:ReverseConversion>true</ns1:ReverseConversion>
		<ns1:CommonWord>true</ns1:CommonWord>
	</ns1:DictionaryEntry>
    <ns1:DictionaryEntry>
		<ns1:PartOfSpeech>Name-Given</ns1:PartOfSpeech>
		<ns1:OutputString>千春</ns1:OutputString>
		<ns1:InputString>ちはる</ns1:InputString>
		<ns1:CommentData1>教導官</ns1:CommentData1>
		<ns1:CommentData2>LG情報なし</ns1:CommentData2>
		<ns1:CommentData3>鹿野苑高等女学園</ns1:CommentData3>
		<ns1:Priority>0</ns1:Priority>
		<ns1:ReverseConversion>true</ns1:ReverseConversion>
		<ns1:CommonWord>true</ns1:CommonWord>
	</ns1:DictionaryEntry>

現時点での対処方法は不明です。#145 での対応 8de5180 を契機に顕在化したものと思われますが、ロールバックするよりは仕様として現状維持の方がユーザメリットは大きいです。他のIMEでどうなるかは確認していません。

@Guest126
Copy link
Contributor Author

ちなみに、GUIDの異なる2つの辞書に分割してインポートした場合、エラーは発生せず、変換候補として表示されるのは片方のみとなりました。

また、Android版Gboadで確認したところ、インポートエラーは発生しませんでした。Android版Gboadではコメント情報を無視するため、インポート時に同一の変換読み単語は自動的に1つにまとめられるようです。

たとえコメント情報が異なるとしても、同一の変換読み単語が変換候補に2つ並ぶのはおかしいという考え方に立てば、

	<ns1:DictionaryEntry>
		<ns1:PartOfSpeech>Name-Given</ns1:PartOfSpeech>
		<ns1:OutputString>千春</ns1:OutputString>
		<ns1:InputString>ちはる</ns1:InputString>
		<ns1:CommentData1>教導官 LG情報なし 私立ルドビコ女学院</ns1:CommentData1>
		<ns1:CommentData2>教導官 LG情報なし 鹿野苑高等女学園</ns1:CommentData2>
		<ns1:Priority>0</ns1:Priority>
		<ns1:ReverseConversion>true</ns1:ReverseConversion>
		<ns1:CommonWord>true</ns1:CommonWord>
	</ns1:DictionaryEntry>

といった記述にするべきなのかもしれません。

@miyacorata miyacorata self-assigned this Oct 26, 2021
@miyacorata miyacorata added bug Something isn't working IME labels Oct 26, 2021
@Guest126
Copy link
Contributor Author

#145 での対応 8de5180 を契機に顕在化したものと思われますが、

訂正です。上記対応とは無関係で、assaultlily-rdf側での鹿野苑高等女学園の教導官2名の追加以降に発生している現象と思われます。

@miyacorata miyacorata added the help wanted Extra attention is needed label Nov 7, 2021
@Guest126
Copy link
Contributor Author

対応の方向性だけ。

今の<<<DCTX ~ DCTX;でのベタ書きだと弄りようがないので、全面的にDOMを利用したXML操作に書き換え、RDFから一人分読み込むたびに同一の変換読みがあるかどうかをDOMツリーと照合する形にすれば #issuecomment-951705194 のような記述が実現できると思います。

上でも書きましたが現状そこまで困ってはいないので気が向いたら程度で……。

@miyacorata
Copy link
Member

ご指摘の件だいぶ長いこと放置しており申し訳ありません。

実装の面では確かに #151 (comment) の通りにするとエラーは消えるのですが、データの仕様として ns1:DictionaryHeader で各コメントの内容について定義していることからこの実装を採用することは適当ではないと考えています。当然片方が欠落することも決して適当とは言い難いのですが...

"被った場合は両方除外する"というのも考えたのですが、それはそれで一発変換できないような名前が今後被ってしまった場合に困りますので、一旦この件は保留ということにさせていただきたいと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed IME
Projects
None yet
Development

No branches or pull requests

2 participants