問題タブ [transliteration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unicode - Unicodeラテン文字「WITHSTROKE」の音訳
ルール"NFD; [:Nonspacing Mark:] Remove; NFC"
をICUTransliteratorデモにフィードすると、文字Ø
(\u00d8
== LATIN CAPITAL LETTER O WITH STROKE
)はそのままになります(つまり、STROKEは削除されません)。
非マーキングスペースのリスト(Category )で、 ()または( )に類似したMn
名前の何かが見つかりません。 COMBINING DIAGONAL STROKE
COMBINING SHORT STROKE OVERLAY
\u0335
COMBINING LONG STROKE OVERLAY
\u0336
ただし、COMBINING SHORT SOLIDUS OVERLAY
(\u0337
)とCOMBINING LONG SOLIDUS OVERLAY
(\u0338
)は見つかります。o
それらは似ているように見えますが、とと組み合わせると、ブラウザで同じくらい太い線をレンダリングしますO
。
アクセスしたUnicodeデータは\u00d8
、その文字の分解を提供しません。
同時に、ICUコレーターデモは、プライマリ(レベル= 1 =ベースレター)コレーターを使用して、、、、、のそれぞれを同じコードポイントに照合しø
ますo
。Ø
O
o\u0337
O\u0338
これは、デモで使用されるCollatorのロケールが、Unicode仕様がサイレントである方法でベース文字を識別するように設定されていることを意味しますか?
LATIN [CAPITAL, SMALL] LETTER *
もしそうなら、音訳の文字からストロークを取り除きたい場合、カスタムのルールベースの音訳をする必要がありますか?
algorithm - 文字変換ベースの単語検索のための効率的なデータ構造/アルゴリズム
文字変換ベースの単語検索を保存および検索するための効率的なデータ構造/アルゴリズムを探しています(google do:http ://www.google.com/transliterate/のように、Google文字変換APIを使用しようとはしていません)。残念ながら、私が取り組んでいる自然言語にはsoundexが実装されていないので、私は一人でいます。
オープンソースプロジェクトでは、現在、単語リストを格納し、それらに一致する正規表現(ユーザー入力に基づく)を動的に生成するためにプレーン配列を使用しています。正常に動作しますが、正規表現は必要以上に強力であるか、リソースを大量に消費します。たとえば、正規表現で数千を超える単語を検索するとコストがかかりすぎるため、このソリューションをハンドヘルドデバイスに移植しようとすると、バッテリーの消耗が大きくなるのではないかと心配しています。
複雑な言語でこれを実現するためのより良い方法が必要です。たとえば、拼音入力方式はどのように機能しますか?どこから始めるべきかについて何か提案はありますか?
前もって感謝します。
編集:私が正しく理解している場合、これは@Dialecticusによって提案されています-
3文字のLanguage1から6文字のLanguage2に音訳したい。各言語が所有する文字数とその電話の数が異なるため、1対1のマッピングを定義できないことがよくあります。a,b,c
p,q,r,x,y,z
音声的にここに連想配列/音訳表があると仮定しましょう:
また、 Language2のプレーン配列に有効な単語リストがあります。
ユーザーがを入力した場合ac
、可能な組み合わせはpx, py, pz, qx, qy, qz
音訳ステップ1の後になります。ステップ2では、有効な単語リストで別の検索を実行する必要があり、とを除くすべての組み合わせを削除する必要がpx
ありqy
ます。
私が現在行っていることは、上記のアプローチとそれほど変わりません。文字変換テーブルを使用して可能な組み合わせを作成する代わりに、正規表現を作成し、それを出力と[pq][xyz]
を提供する有効な単語リストと照合します。px
qy
それよりも良い方法があるかどうか知りたいです。
emacs - Emacs コードページの問題: Terminus フォント、utf-8 およびキリル文字変換入力
cyrillic-translit
私は Emacsのインプットメソッドが大好きです。しかし、すばらしいTerminusをデフォルトのフォントとして設定すると、ロシア語の文字が Arial か何かで表示されます (いずれにせよ、Terminus ではありません)。
これを修正するにはどうすればよいですか? デフォルトのフォントを UTF-8 (Emacs と同等"-outline-Terminus-normal-normal-normal-mono-16-*-*-*-c-*-iso10646-1"
) に設定しても役に立ちません。これはおそらく、Terminus が適切な UTF-8 サポートを欠いていることを意味していると思いますか?
とにかく、キリル文字変換入力方法と「通常」モードを切り替えるために、次のスニペットを使用しています。
今 -- cyrillic-translit
F9 を押したときにスニペットを切り替えるだけでなく、コードページを切り替える方法はありますか?
"-outline-Terminus-normal-normal-normal-mono-16-*-*-*-c-*-iso8859-1"
つまり、 (ラテン語) と"-outline-Terminus-normal-normal-normal-mono-16-*-*-*-c-*-iso8859-5"
(ロシア語)の間でフォントを切り替えるにはどうすればよいですか?
これは、(プログラマーではない) 私が思いつく唯一の回避策です。他のアイデアも大歓迎です。ありがとう!
search - Solr、Special Chars、およびラテン文字からキリル文字への変換
Solr(またはLucene)を使用して検索エンジンをセットアップしようとしています。これは、ラテン語のテキストと特殊文字(特殊文字には例としてÖまたはÇが含まれます)またはキリル文字(例にはБまたはбおよびЖжが含まれます)の両方を持つことができます。 。
とにかく、私はこれらの文字が含まれている単語を検索できるようにするための解決策を見つけようとしていますが、キーボードにキーがないユーザーのために...
例は次のようになります(ここで単語を作成し、うまくいけば誰も怒らせないでしょう):
- 「本」を検索すると「BÖÖK」が見つかります
- XRAYを検索すると「ЖRAY」が見つかります
- 「ЖRAY」は、ZRAY、ZHRAY、またはžrayを検索する場合にも表示されます(CylricからLatin Charへの音訳については、 GOST 16876-71を参照してください)。
だから、私はこれについてどうやって行くべきですか?私が持っているいくつかの理論は次のとおりです。
- 元の文字列ごとに複数のテキストフィールドを格納できるようにします。1つは元の形式、1つは音訳の最初のパス(たとえば、ÖをOに、Жをžに変換します)、次に1つを3番目の形式(žからzまたはzhへ)->は、大量のデータを保存することを意味します。
- solrにそのまま保存し、Solrに魔法をかけてもらいます->これがどれだけうまく機能するかわかりません...これを行うためにsolrに何も表示されません
- まだ見つけていない魔法の弾丸...
何か案は?誰かが以前にこれを試しましたか?
string - ユーザー入力をバッチで文字単位で変換する
わかりました基本的に、このような方法でX文字をY文字に変更する単純なバッチプログラムが必要です
ive は文字列やその他の変数のトリックを調べますが、うまくいきません。こちらが私が試したもので、別の方法を試した「codeb」で確認できます
これは基本的に、すべての入力文字を個別の変数に分割しようとする私の方法でした。
もしあなたの気持ちが....退屈なら、以下は翻訳の正確な変換です
基本的に、この「v'rxg」をバッチに「貼り付け」てEnterキーを押すと、「バッチ」が表示されるはずです
java - Java Swing プロジェクトの Google 文字変換 API
Java Swing で文字変換プロジェクトに取り組んでいます。インターネットにアクセスできますが、設定できません。どうやってそれを行うのですか?Google API ライブラリをダウンロードする必要がありますか? それとも関数呼び出しだけで十分ですか?
便利な文字変換のリンクを次に示します。
Google Transliterate API デベロッパー ガイド
ダウンロード用の Java 用 Google API ライブラリ
(Google:Translate、transliterate、search などのすべての API ライブラリが含まれていると思います)
私は多くの時間を費やしましたが、SO でさえも、音訳 API をセットアップする方法を見つけることができませんでした。
c++ - C++ での Unicode 文字の処理
記載されていないエンコーディングの Unicode テキストを含むファイルがあります。このファイルをスキャンして、U+0600 から U+06FF までの範囲のアラビア語コード ポイントを探し、該当する各 Unicode コード ポイントを ASCII のバイトにマップして、新しく作成されたファイルが純粋な ASCII 文字で構成されるようにします。 、すべてのコード ポイントが 128 未満です。
どうすればこれを行うことができますか?ASCII と同じように読み取ろうとしましたが ??
、マルチバイト文字であるため端末に表示されます。
注: ファイルは Unicode 文字セットのサブセットで構成されており、サブセットのサイズは ASCII 文字のサイズよりも小さくなっています。したがって、この特定の Unicode サブセットから ASCII への 1:1 マッピングを行うことができます。
c# - Newtonsoft.Json を使用した C# での Google 文字変換の逆シリアル化
初心者として、Google トランスリテレータの戻り配列を逆シリアル化しようとしました。次のような JSON 配列です。
めっちゃすごい!
これは、逆シリアル化に使用される私の c# クラスです。
そして最後に:
そして、私が得たものは次のとおりです。
何が間違っているのですか?
unicode - 文字列から非 ASCII をすべて削除する
私の質問は一般的なものです。プログラミング言語に特別なモジュールがあるかどうか、または私のタスクを達成できる準備ができているプログラムがあるかどうかを尋ねたいと思います。
すべての国別文字を対応する文字に自動的に置き換える便利な方法はありますか (複数の replace ステートメントを使用して独自の関数を記述する以外に)。たとえば、æをaeに、äをaに、ęをeに、などと置き換えます。
汎用関数を用意できない場合、現在使用されているプログラミング言語で、使用できる文字を標準のラテン アルファベットの文字のみに制限するだけで、そのような文字を削除する準備ができている関数はありますか?