私は、文字列の先頭から、Pythonのスティングから位置名が始まるUTF-16コードユニットの数を抽出する必要があります。私はPolyglot NERを使用して、Python文字列の場所にタグを付けます。たとえば、「オバマはアメリカで生まれましたが、私はアラバマ州で生まれました」と、「アメリカ」と「アラバマ」をマークします。 Python Polyglotエクストラクタは、タグ付けされた場所に戻るだけでなく、先頭からいくつの単語が始まるかを返します。単語が出現する文字列の先頭からUTF-16コードユニットの数を調べるにはどうすればよいですか?情報https://github.com/Berico-Technologies/CLAVIN/blob/master/src/main/java/com/bericotech/clavin/extractor/LocationOccurrence.javaPythonでのUTF-16コードユニットPolyglot
答えて
を必要
Javaインタフェースは、ジャスト@Ignacioバスケス - エイブラムスのコメントのいくつかを明確にします。 テキストを処理したり分析したりするとき、与えられた文字が何バイトかを気にする必要はありません。そのため、コード化されたテキストを最初に 'デコード'して別のtext/str表現にすることで、 'encoding'を式の外に出すのはこのためです。
>>> encoded_text = 'hello world'.encode('utf16')
>>> encoded_text
b'\xff\xfeh\x00e\x00l\x00l\x00o\x00 \x00w\x00o\x00r\x00l\x00d\x00'
>>> type(encoded_text)
<class 'bytes'>
>>> len(encoded_text)
24
>>> decoded_text = encoded_text.decode('utf16')
>>> decoded_text
'hello world'
>>> type(decoded_text)
<class 'str'>
>>>
>>> len(decoded_text)
11
私はあなたが最初からのバイト数を取得するには、このような何かを行うことができますあなたが投稿JavaコードでUTF-16 code units
...
を見ました:
sentence = "Obama was born in the United States. But I was born in Alabama".encode('UTF-16LE')
word = 'United States'.encode('UTF-16LE')
bytes_from_start = None
for start_byte_position in range(len(sentence)):
candidate = sentence[start_byte_position: start_byte_position + len(word)]
if word == candidate:
bytes_from_start = len(sentence[:start_byte_position])
print('bytes from start: ', bytes_from_start)
print('len(sentence[:start_byte_position]): ', len(sentence[:start_byte_position]))
print('Preceding text: "{}"'.format(sentence[:start_byte_position].decode('UTF-16LE')))
break
しかし、それはですUTF-16コードユニット == バイトの場合はまだクリアされていません。私はそれが本当にちょうど最初から文字数を望んでいると感じています。あなたが代わりにテキストで作業しているように、
がsentence = "Obama was born in the United States. But I was born in Alabama"
word = 'United States'
characters_from_start = sentence.index(word)
インターフェイスの要件はUTF-16コード単位です。したがって、「エンコーディング」は、文字が占めるバイト数が重要です。 –
ええ、私は気づいた、更新された答え... – monkut
- 1. Polyglot永続性の例
- 2. python 3.5用のpolyglotのインストールでエラーが発生しましたか?
- 3. Win1251-> UTF16変換
- 4. ms xml 6.0のutf16のサポート
- 5. Rails 3.0.3とPolyglot Gemの問題
- 6. WindowsにPolyglotをインストールするには? pythonで私のサーバーを実行しようとすると
- 7. RE2とUTF16(またはUCS-2)
- 8. 「HTMLエンティティ」の絵文字コードをUTF16で変換する(C++で)
- 9. UTF16ではなくUTF8へのSQL Server出力クエリ
- 10. C++:(Pythonのint型(hex_data、16)のような)小数にUTF16の文字の16進表現に変換
- 11. utf16でURLを指定する際の問題jsoupへの文字列
- 12. ヘブライ語の名前付きエンティティの認識にpolyglotパッケージを使用
- 13. PDIケトルのテキストファイル出力でBOMエンコーディングを使用するUTF16-LEを使用
- 14. swift utf16データストリーム - チャンクに分割する問題
- 15. 文字列からUTF16文字を削除するには?
- 16. キリル文字(utf16?)を使用したJavaからのブラウザを開きます
- 17. コードユニットを含むことを避けるための方法としてのC++仮想キーワード
- 18. Android用テキストビューにUTF16-LEエンコードされた文字列を表示します。
- 19. UTF16文字列内のすべての文字が有効であることを確認しますか?
- 20. MySqlの例外:変数 'character_set_client'を 'utf16'の値に設定することはできません
- 21. UTF16とWCS(OS-Xのみ)の間の変換に関するUnicode ICU4Cの問題
- 22. PythonでPythonの
- 23. Macでpolyglotをインストールするには?私は、次のエラーメッセージが表示されます<a href="http://polyglot.readthedocs.io/en/latest/Installation.html" rel="nofollow">instructions</a>次
- 24. 私のpythonコードでのpython
- 25. のPython 3でのPython 2.7
- 26. powershellコマンドプロンプトでUTF16でエンコードされたファイルをascii(またはUTF8)形式で出力する方法は?与えられた
- 27. なぜXドキュメントは私にutf16宣言を与えるのですか?私はこのようなXDocumentを作成してい
- 28. PythonでPythonのstruct.pack/struct.unpack
- 29. Pythonでboost :: pythonライブラリのユニットテスト
- 30. Pythonのstring.join()はPythonで
あなたが最初にそれを解読することはできません。それがすべてだ場合、あなたはstrのオブジェクトの.INDEX()メソッドを使用することができます必要がありますか? –
私はテキストを使って作業しています。私は正直なところ、距離としてコード単位を使用している方法、またはその距離を取得する方法を理解できません。 –
エンコーディングを気にする必要がある場合、テキストではなくバイトで作業しています。 –