Skip to content

hinananoha/mecab-service

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

MeCab Webサービス (N-best解対応)

docker-composeコマンドだけで起動できるMeCabサービス(https://github.com/matsulib/mecab-service) のN-best解対応バージョン

  • flask-mecab

    • MeCabを利用できるRESTfulなflaskサーバー
    • IPA辞書と新語辞書mecab-ipadic-neologdが選択できる
  • フロントエンド

    • 未定

ディレクトリ構成

.
├── README.md
├── docker-compose.yml
└── flask-mecab
    ├── Dockerfile
    ├── requirements.txt
    └── server.py

起動方法/終了方法

$ docker-compose up -d   
$ docker-compose down

実行方法

HTTPリクエスト

POST /mecab/v1/parse-ipadic
POST /mecab/v1/parse-neologd

リクエストヘッダ

Content-Type: application/json

リクエストボディ

{
  "sentence": 文字列
  "nbest": N-best(optional)
}

実行例 ipadic (N-best指定なし)

$ curl -X POST http://localhost:5000/mecab/v1/parse-ipadic \
       -H "Content-type: application/json" \
       -d '{"sentence": "関数型プログラミング"}'  | jq .
{
  "dict": "ipadic",
  "results": [
    {
      "id": 0,
      "items": [
        {
          "原型": "関数",
          "品詞": "名詞",
          "品詞細分類1": "一般",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "カンスー",
          "表層形": "関数",
          "読み": "カンスウ"
        },
        {
          "原型": "型",
          "品詞": "名詞",
          "品詞細分類1": "接尾",
          "品詞細分類2": "一般",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "ガタ",
          "表層形": "型",
          "読み": "ガタ"
        },
        {
          "原型": "プログラミング",
          "品詞": "名詞",
          "品詞細分類1": "サ変接続",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "プログラミング",
          "表層形": "プログラミング",
          "読み": "プログラミング"
        }
      ]
    }
  ],
  "message": "Success",
  "nbest": 1,
  "status": 200
}
 

実行例 ipadic (N-best指定あり)

$ curl -X POST http://localhost:5000/mecab/v1/parse-ipadic \
       -H "Content-type: application/json" \
       -d '{"sentence": "関数型プログラミング", "nbest": 2}'  | jq .
{
  "dict": "ipadic",
  "results": [
    {
      "id": 0,
      "items": [
        {
          "原型": "関数",
          "品詞": "名詞",
          "品詞細分類1": "一般",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "カンスー",
          "表層形": "関数",
          "読み": "カンスウ"
        },
        {
          "原型": "型",
          "品詞": "名詞",
          "品詞細分類1": "接尾",
          "品詞細分類2": "一般",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "ガタ",
          "表層形": "型",
          "読み": "ガタ"
        },
        {
          "原型": "プログラミング",
          "品詞": "名詞",
          "品詞細分類1": "サ変接続",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "プログラミング",
          "表層形": "プログラミング",
          "読み": "プログラミング"
        }
      ]
    },
    {
      "id": 1,
      "items": [
        {
          "原型": "関数",
          "品詞": "名詞",
          "品詞細分類1": "一般",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "カンスー",
          "表層形": "関数",
          "読み": "カンスウ"
        },
        {
          "原型": "型",
          "品詞": "名詞",
          "品詞細分類1": "一般",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "カタ",
          "表層形": "型",
          "読み": "カタ"
        },
        {
          "原型": "プログラミング",
          "品詞": "名詞",
          "品詞細分類1": "サ変接続",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "プログラミング",
          "表層形": "プログラミング",
          "読み": "プログラミング"
        }
      ]
    }
  ],
  "message": "Success",
  "nbest": 2,
  "status": 200
}
 

実行例 mecab-ipadic-neologd

mecab-ipadic-neologdは固有名詞に強い辞書です。

$ curl -X POST http://localhost:5000/mecab/v1/parse-neologd \
       -H "Content-type: application/json" \
       -d '{"sentence": "関数型プログラミング", "nbest": 2}'  | jq .
{
  "dict": "neologd",
  "results": [
    {
      "id": 0,
      "items": [
        {
          "原型": "関数型プログラミング",
          "品詞": "名詞",
          "品詞細分類1": "固有名詞",
          "品詞細分類2": "一般",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "カンスーガタプログラミング",
          "表層形": "関数型プログラミング",
          "読み": "カンスウガタプログラミング"
        }
      ]
    },
    {
      "id": 1,
      "items": [
        {
          "原型": "関数",
          "品詞": "名詞",
          "品詞細分類1": "一般",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "カンスー",
          "表層形": "関数",
          "読み": "カンスウ"
        },
        {
          "原型": "型",
          "品詞": "名詞",
          "品詞細分類1": "接尾",
          "品詞細分類2": "一般",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "ガタ",
          "表層形": "型",
          "読み": "ガタ"
        },
        {
          "原型": "プログラミング",
          "品詞": "名詞",
          "品詞細分類1": "サ変接続",
          "品詞細分類2": "*",
          "品詞細分類3": "*",
          "活用型": "*",
          "活用形": "*",
          "発音": "プログラミング",
          "表層形": "プログラミング",
          "読み": "プログラミング"
        }
      ]
    }
  ],
  "message": "Success",
  "nbest": 2,
  "status": 200
}

About

RESTful Mecab on Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%