GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

LuminosoInsight

python-ftfy – Unicodeテキストが与えられると、その表現は一貫性があり、おそらくは壊れにくくなる可能性があります

投稿日:

Unicodeテキストが与えられると、その表現は一貫性があり、おそらくは壊れにくくなる可能性があります。

ftfy:あなたのためのテキストを修正する

>>> print(fix_encoding("(ง'⌣')ง"))
(ง'')ง

完全なドキュメント: http : //ftfy.readthedocs.org

お客様の声

  • “私の人生はもう生き生きしています!” – @planarrowspace
  • “便利な魔法” – @imonw
  • “私に大量の退屈な開発作業を保存しました” – @iancal
  • 「ftfyはすぐに正しいことをしました。 優れた仕事、非常にトリッキーな現実世界(全世界!)の問題を解決する。 ” – Brennan Young
  • “帽子はTage geholfen死ぬ。 Meinungの中の唯一の唯一の場所は、Computernとの間のマスキンネンのマスキネン・マシューン・ミー・ニング・アンド・ニング・イン・ナイト・イン・マイ・ナイト・イン・マイクン :D ” – ブルーノ・ラニエリ
  • 「これが必要なときはいつか分かりませんが、間違いなくブックマークしています」 – / u / ocrow
  • “9.2 / 10” – pylint

Luminosoで開発された

Luminosoは、多くの言語で単語が何を意味するのかを実際に理解するテキスト分析の画期的なソフトウェアを作成します。 当社のソフトウェアは、Sony、Intel、Mars、Scottsなどのエンタープライズ顧客によって使用されており、Pythonおよびオープンソース技術を基盤として構築されています。

我々は、テキストを理解するための最初のステップは、それが正しい文字を持っていることを確認しているので、Luminosoで毎日ftfyを使用しています!

Luminosoは急速に成長し、採用しています。 あなたが私たちに加わることに興味があるなら、 私たちのキャリアページを見てください

それは何ですか

ftfyは、さまざまな方法で壊れているUnicodeを修正します。

ftfyの目的は、Unicode対応のコードで使用するために、悪いUnicode取り込み、優れたUnicodeを出力することです。 これは、Unicode以外を取り出してUnicodeを出力することとは異なりますが、これはftfyの目的ではありません。 また、Unicode対応のコードを書く必要がないように設計されていません。 ftfyは自分自身を助ける人を助けます。

もちろん、入力が適切にデコードされていて、不具合がない場合は、より効果的です。 しかし、しばしばあなたの入力を制御することはありません。 それは他人の間違いですが、今はあなたの問題です。

ftfyは問題を解決するためにできることすべてを行います。

Mojibake

ftfyが修正する最も面白い種類の欠点は、誰かが1つの標準でUnicodeをエンコードし、別のものでそれをデコードした場合です。 これは、しばしば、ナンセンスシーケンス(「モジバーク」と呼ばれる)に変わる文字として表示されます。

  • schönという単語はschönとして表示されることがschönます。
  • emダッシュ( )は—表示されることがあります。
  • 引用符で囲まれていたテキストは、「 â€<9d>囲まれてしまう可能性があります。 <9d>は印刷できない文字です。

ftfyはヒューリスティックスを使用して、このようなモジベークを検出して元に戻します。誤検出率は非常に低くなります。

ftfyのこの部分は、simonwによる非公式のWeb実装を行っています: https ://ftfy.now.sh/

fix_textfix_textの主な機能です。 このセクションは、できることを味わうためのものです。 fix_encodingfix_encodingのみを修正するより具体的な関数です。

ftfyの機能と必要に応じて設定する方法の詳細については、ドキュメントをお読みください。

>>> print(fix_text('This text should be in “quotesâ€\x9d.'))
This text should be in "quotes".

>>> print(fix_text('ünicode'))
ünicode

>>> print(fix_text('Broken text&hellip; it&#x2019;s flubberific!',
...                normalization='NFKC'))
Broken text... it's flubberific!

>>> print(fix_text('HTML entities &lt;3'))
HTML entities <3

>>> print(fix_text('<em>HTML entities in HTML &lt;3</em>'))
<em>HTML entities in HTML &lt;3</em>

>>> print(fix_text('\001\033[36;44mI&#x92;m blue, da ba dee da ba '
...               'doo&#133;\033[0m', normalization='NFKC'))
I'm blue, da ba dee da ba doo...

>>> print(fix_text('LOUD NOISES'))
LOUD NOISES

>>> print(fix_text('LOUD NOISES', fix_character_width=False))
LOUD NOISES

インストール

ftfyはpyを使ってインストールできるPython 3パッケージです:

pip install ftfy

(あるいは、Python 2と3が両方ともグローバルにインストールされているシステムでpip3 install ftfypipがPython 2を参照する)

Python 2.7を使用している場合、古いバージョンをインストールできます:

pip install 'ftfy<5'

このGitリポジトリを複製してpython setup.py installすることもできます。

誰がftfyを維持していますか?

私はRob Speer( rob@luminoso.com )です。 私は、このツールをテキスト認識会社Luminosoの一環として開発しました。

Luminosoは、非常に許容されるMITライセンスの下で、無料のオープンソースソフトウェアとしてftfyを提供しています。

GitHubでftfyに関するバグを報告することができます。私たちはそれらを処理します。







-LuminosoInsight

執筆者: