概要
この中国語の発音類似性推定器は、中国語の文字に発音を基準としたインデックスを付けるための音声アルゴリズムを提供します。中国語の同じ長さの 2 つの単語を基に、このモデルはその 2 つの単語間の音響距離を判断し、所定の単語と同じような発音の単語候補を返します。このコードは、ISO 7098:2015 で定義されているローマ字化を基準とした中国標準語音声原則に従っています。モデルのベースとなっているのは、DimSim モデルです。
モデルのメタデータ
ドメイン | アプリケーション | 業種 | フレームワーク | トレーニング・データ | 入力データの形式 |
---|---|---|---|---|---|
NLP | テキスト・クラスタリング/音声学 | ソーシャル・メディア | Python | N/A | 中国語テキスト (UTF-8 エンコード方式を適用) |
参考資料
- Min Li、Marina Danilevsky、Sara Noeman、Yunyao Li 共著「DIMSIM: An Accurate Chinese Phonetic Similarity Algorithm Based on Learned High Dimensional Encoding」(第 22 回 Computational Natural Language Learning カンファレンスの議事録、2018 年)
- DimSim GitHub リポジトリー
ライセンス
コンポーネント | ライセンス | リンク |
---|---|---|
モデルの GitHub リポジトリー | Apache 2.0 | LICENSE |
モデルの重み | 適用外 | 適用外 |
モデルのコード (サード・パーティー) | Apache 2.0 | LICENSE |
テスト・アセット | 適用外 | 適用外 |
このモデルのデプロイ方法
このモデルは、以下のメカニズムを使用してデプロイできます。
PyPi のライブラリーとしてローカルに実行する場合: GitHub 上のモデルの README に記載されている手順に従います。
Docker Hub からデプロイする場合:
docker run -it -p 5000:5000 codait/max-chinese-phonetic-similarity-estimator
- Kubernetes 上にデプロイする場合:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Chinese-Phonetic-Similarity-Estimator/master/max-chinese-phonetic-similarity-estimator.yaml
- ローカルにデプロイする場合: GitHub 上のモデルの README に記載されている手順に従います。
使用例
このモデルをテストまたは使用するには、以下の方法があります。
cURL を使用してモデルをテストする
モデルをデプロイしたら、コマンド・ラインからモデルをテストできます。例えばローカルで実行する場合は、ターミナルから以下のコマンドを実行します。
$ curl -X POST "http://localhost:5000/model/predict?first_word=%E5%A4%A7%E8%99%BE&second_word=%E5%A4%A7%E4%BE%A0&mode=simplifiedθ=1" -H "accept: application/json"
以下のような JSON レスポンスが表示されるはずです。
{
"status": "ok",
"predictions": [
{
"distance": "0.0002380952380952381",
"candidates": [
[
"打下",
"大虾",
"大侠"
],
[
"打下",
"大虾",
"大侠"
]
]
}
]
}
Python を使用してモデルをテストする
ターミナルから Python シェルを開きます。
$ python
Python シェルから以下のコマンドを実行してモデルをテストします。
import dimsim
dist = dimsim.get_distance("大侠","大虾")
0.0002380952380952381
dist = dimsim.get_distance("大侠","大人")
25.001417183349876
dist = dimsim.get_distance(['da4','xia2'],['da4','xia1']], pinyin=True)
0.0002380952380952381
dist = dimsim.get_distance(['da4','xia2'],['da4','ren2']], pinyin=True)
25.001417183349876