1. はじめに
NLPをやっていると、以下のような前処理をよく見かけると思います。
Trời mưa thì phải ở nhà. => Troi mua thi phai o nha.
上の例は分かりやすくベトナム語にしましたが、英語を除くヨーロッパ言語でもその多くが、26文字のラテンアルファベット以外のアルファベットを持っています。
また、以下はベトナム出身の妻と友人の会話です。
友人:ベトナム語ってアルファベットに色々くっつけた面白い文字を使ってるよね。
妻:いやいや、これがベトナム語のアルファベットだから。
このように、各言語で重要な役割を果たしている小さな記号たちが軽視されている現状があると感じています。
そんな違和感から生み出されたのがalphabet-thiefです。
2. 概要
入力文から小さな記号たち以外を奪い去るツールです。
3. インストール
pip
でインストールできます。
python -m pip install alphabet-thief
4. 使い方
アルファベットを奪うsteal
と、アルファベットを好きな文字に置換するreplace
の2つが実装されています。
例えば先ほどのベトナム語の例を用いると、以下のようになります。
import alphabet_thief
text = 'Trời mưa thì phải ở nhà.'
print(f' input: "{text}"')
result1 = alphabet_thief.steal(text)
print(f'result1: "{result1}"')
result2 = alphabet_thief.replace(text, 'a')
print(f'result2: "{result2}"')
input: "Trời mưa thì phải ở nhà."
result1: " ̛̀ ̛ ̀ ̉ ̛̉ ̀."
result2: "aaà̛a aa̛a aaà aaảa ả̛ aaà."
result1の各記号やresult2のả̛
など一部表記のズレが見られますが、そんなアルファベットは登録されていないのに無理やりくっつけているため生じているようです。
PyPI上ではなぜかズレなく表示されていますのでご確認ください。