README.md

# Mecab

[![hex.pm version](https://img.shields.io/hexpm/v/mecab.svg)](https://hex.pm/packages/mecab)
[![hex.pm](https://img.shields.io/hexpm/l/mecab.svg)](https://github.com/tex2e/mecab-elixir/blob/master/LICENSE)

Elixir bindings for MeCab, a Japanese morphological analyzer.


## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed as:

  1. Add `mecab` to your list of dependencies in `mix.exs`:

    ```elixir
    def deps do
      [{:mecab, "~> 1.0.0"}]
    end
    ```

  2. Ensure `mecab` command is available for your environment:

    ```
    # MacOS
    brew install mecab mecab-ipadic
    ```

## Usage

Further information is available at
[Hex Online Documentation](https://hexdocs.pm/mecab/Mecab.html)

The way of parsing given string is as follows:

    iex> Mecab.parse("今日は晴れです")
    [%{"conjugation" => "",
       "conjugation_form" => "",
       "lexical_form" => "今日",
       "part_of_speech" => "名詞",
       "part_of_speech_subcategory1" => "副詞可能",
       "part_of_speech_subcategory2" => "",
       "part_of_speech_subcategory3" => "",
       "pronunciation" => "キョー",
       "surface_form" => "今日",
       "yomi" => "キョウ"},
     %{"conjugation" => "",
       "conjugation_form" => "",
       "lexical_form" => "は",
       "part_of_speech" => "助詞",
       "part_of_speech_subcategory1" => "係助詞",
       "part_of_speech_subcategory2" => "",
       "part_of_speech_subcategory3" => "",
       "pronunciation" => "ワ",
       "surface_form" => "は",
       "yomi" => "ハ"},
     %{"conjugation" => "",
       "conjugation_form" => "",
       "lexical_form" => "晴れ",
       "part_of_speech" => "名詞",
       "part_of_speech_subcategory1" => "一般",
       "part_of_speech_subcategory2" => "",
       "part_of_speech_subcategory3" => "",
       "pronunciation" => "ハレ",
       "surface_form" => "晴れ",
       "yomi" => "ハレ"},
     %{"conjugation" => "基本形",
       "conjugation_form" => "特殊・デス",
       "lexical_form" => "です",
       "part_of_speech" => "助動詞",
       "part_of_speech_subcategory1" => "",
       "part_of_speech_subcategory2" => "",
       "part_of_speech_subcategory3" => "",
       "pronunciation" => "デス",
       "surface_form" => "です",
       "yomi" => "デス"},
     %{"conjugation" => "",
       "conjugation_form" => "",
       "lexical_form" => "",
       "part_of_speech" => "",
       "part_of_speech_subcategory1" => "",
       "part_of_speech_subcategory2" => "",
       "part_of_speech_subcategory3" => "",
       "pronunciation" => ""
       "surface_form" => "EOS",
       "yomi" => ""}]


The way of parsing given file is as follows:

    iex> Mecab.read!("sentences.txt")


Each parser function returns a list of map.
The map's keys meanings is as follows.

- `surface_form`: 表層形
- `part_of_speech`: 品詞
- `part_of_speech_subcategory1`: 品詞細分類1
- `part_of_speech_subcategory2`: 品詞細分類2
- `part_of_speech_subcategory3`: 品詞細分類3
- `conjugation_form`: 活用形
- `conjugation`: 活用型
- `lexical_form`: 原形
- `yomi`: 読み
- `pronunciation`: 発音


See Also
-------------

- [Hex Mecab](https://hex.pm/packages/mecab)
- [Online Documentation](https://hexdocs.pm/mecab/Mecab.html)