Skip to content

y26805/mecab-service

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeCab Web service

Forked. Linked to Google Cloud Build, such that every time the code is updated, a new Docker image will be pushed to Google Container Registry (GCR). Cloud Run then pulls image from GCR.


docker-composeコマンドだけで起動できるMeCabサービス

  • flask-mecab

    • MeCabを利用できるRESTfulなflaskサーバー
    • IPA辞書と新語辞書mecab-ipadic-neologdが選択できる
  • flask-mecab-front

    • flask-mecabのAPIを呼び出すフロントエンドアプリ
    • 環境:Flask, Vue.js, Bootstrap3

ディレクトリ構成

.
├── docker-compose.yml
├── flask-mecab
│   ├── Dockerfile
│   ├── requirements.txt
│   └── server.py
├── flask-mecab-front
│   ├── app.py
│   ├── Dockerfile
│   ├── requirements.txt
│   ├── static
│   │   ├── app.js
│   │   └── style.css
│   └── templates
│       ├── index.html
│       └── layout.html
└── README.md

起動方法/終了方法

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

実行方法

HTTPリクエスト

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

リクエストヘッダ

Content-Type: application/json

リクエストボディ

{
  "sentence": 文字列
}

実行例 ipadic

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

フロントエンド

ブラウザでhttp://localhost:5001/にアクセスします。

スクリーンショット

mecab.PNG

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 36.5%
  • Python 29.7%
  • HTML 17.7%
  • Dockerfile 12.7%
  • CSS 3.4%