2017-02-03 1 views
3

私はPythonで作業しています、そして、私はいくつかの言葉の根を見つけることを望みます、それは主に国を参照しています。私が必要とするものを示すいくつかの例は以下の通りです:Pythonで国家のためのスマートなステミング/ lemmatizing

  • スペインは私にスペインを与えるべきです。
  • 英語は私にイギリスを与えるべきです。
  • アメリカ人は私にアメリカを渡すべきです。
  • ナイジェリアはナイジェリアを私に渡すべきです。
  • ギリシャ語(複数形)はギリシャ語を教えてください。
  • プエルトリコ(複数形)は私にプエルトリコを与えるべきです。
  • ポルトガル語はポルトガル語です。

私は、NLTKモジュールのPorter、Lancaster、Snowballのステムマーを少し試しました。しかしポーターとスノーボールはトークンを一切変更しないが、ランカスターはあまりにも積極的だ。たとえば、アメリカ人のランカスター幹は「Am」です。これはかなりひどく虐殺されています。私はWordNetのリムタイターでも演奏しましたが、成功しませんでした。

上記の結果を得る方法は、それが国でのみ機能する場合でもありますか?

+0

Wikipediaの[この総合リスト](https://en.wikipedia.org/wiki/Demonym)をご覧ください。 – lenz

答えて

0

あなたは、UnicodeのCLDR(共通ロケールデータリポジトリ)をチェックアウトする場合があります http://cldr.unicode.org/

あなたは彼らの共有、標準のISO 639コードを使用して、それらを一緒にマップすることができてそれが役に立つかもしれません地域と言語のリストを持っています( en、de、frなど)。

https://github.com/unicode-cldr/cldr-localenames-full/tree/master/main/en

チェックアウトterritories.jsonlanguages.jsonそこファイル:

はここで便利なJSONリポジトリです。

+0

私はOPが、スペイン語のワインのような国の形容詞を話していると思っています。それは素晴らしい1:1マッピングを持っていない言語ではありません。(同じ言語の多くの国、国語) – lenz

+0

私は同意しますが、多くの国の形容詞は言語名に非常にうまく対応していますが、Levensteinの距離との類似性をチェックし、(例えば)より接尾辞に基づくアプローチに落ちることで、彼らはあまりにも異なっています。 – PrettyHands

+0

しかし、ウィキペディアのリストを使用する方が良い方法です:) – PrettyHands

関連する問題