russiannames
1.0.0
russiannames
は、ロシアの名前、姓、ミッドネームを解析することに特化したPython 3ライブラリで、FullNameと名前の書かれた方法で人の性別を特定します。 Mongodbをバックエンドとして使用して、名前をスピードアップします。
ドキュメントは自動的に構築されており、https://russiannames.readthedocs.org/en/latest/にあります。
Pythonライブラリをインストールするにはpip install russiannames
PIPまたはpython setup.py install
を使用します
データベースを使用するには、mongodbインスタンスが必要です。 https://github.com/datacoon/russiannames/blob/master/data/bson/db_dump_bson.zipからDB_DATA_BSON.ZIPファイルをアンパックします
mongorestore
コマンドを使用して、名前、姓、およびミッドネームの3つのコレクションでnames
データベースを復元します
識別に使用される名前のデータベース
性別とコレクションによる詳細なデータベース統計
コレクション | 合計 | 男性 | 女性 | 普遍的または不明 |
---|---|---|---|---|
名前 | 32134 | 19297 | 8278 | 1196 |
ミッドネーム | 48274 | 30114 | 16143 | 0 |
姓 | 375274 | 124662 | 111534 | 38827 |
ロシアのフルネームの執筆スタイルの12の形式をサポートしています
形式 | 例 | 説明 |
---|---|---|
f | ®¡ | 名のみ |
s | петров | 姓のみ |
fs | о見つけてください | 名と姓の最初の文字 |
SF | 安定 | 完全な姓と姓の最初の手紙 |
SF | éruedéqu | 完全な姓と完全な名 |
fs | もっと→陳番 | フル名と姓 |
FM | □анールド | フル名とフルミドルネーム |
SFM | するまで | 姓の最初の文字、名、Middlename |
FM | 頂点えーと | 最初の名前とフルファネームの最初の文字 |
SFM | николаенко番。 | 姓と最初の名前の最初の文字 |
SFM | петраков配 | 完全な姓、名とミドルネームの最初の文字 |
SFM | 謝罪アаковринатoさーoです | 姓、名、ミドルネームとしてのフルネーム |
FM | 見つけてください灰灰すべて | 名、ミドルネーム、姓としてのフルネーム |
次の民族識別で名前をサポートします
サポートされている名前、姓、ミドルネームの9つの民族タイプ
鍵 | 名前(en) | 名前(rus) |
---|---|---|
アラブ | アラビア語 | Öрабское |
アーム | アルメニア人 | &qurです |
geor | ジョージアン | 売春婦 |
胚芽 | ドイツ語 | ≥ |
ギリシャ語 | ギリシャ語 | 売春婦 |
ユダヤ人 | ユダヤ人 | ええと |
ポルスク | 研磨 | польские |
スラブ人 | スラブ(ロシア語) | もっと→нские |
Tur | トルコ語 | 虚偽 |
解析名と返品:フォーマット、姓、名、ミドルネーム、解析(TRUE/FALSE)および性別
>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.parse('Нигматуллин Ринат Ахметович')
{'format': 'sfm', 'sn': 'Нигматуллин', 'fn': 'Ринат', 'mn': 'Ахметович', 'gender': 'm', 'text': 'Нигматуллин Ринат Ахметович', 'parsed': True}
>>> parser.parse('Петрова C.Я.')
{'format': 'sFM', 'sn': 'Петрова', 'fn_s': 'C', 'mn_s': 'Я', 'gender': 'f', 'text': 'Петрова C.Я.', 'parsed': True}
ジェンダーフィールドには、次の値の1つを持つことができます。
姓、名、ミドルネームを解くと、人の人の倫理的提携を特定しようとする
>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.classify('Нигматуллин', 'Ринат', 'Ахметович')
{'ethnics': ['tur'], 'gender': 'm'}
>>> parser.classify('Алексеева', 'Ольга', 'Ивановна')
{'ethnics': ['slav'], 'gender': 'f'}