Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More

morpheme-match

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

morpheme-match

match function that match token(形態素解析) with sentence.


Version published
Weekly downloads
48K
decreased by-12.74%
Maintainers
1
Weekly downloads
 
Created

morpheme-match Build Status

morpheme-match provide match function that match token with sentence.

形態素解析したトークンを元に、文章にマッチするトークンが含まれているかをチェックするライブラリ。

Online Demo

Online demo site

Please go to https://azu.github.io/morpheme-match/

Install

Install with npm:

npm install morpheme-match

Usage

createTokenMatcher(expectedTokens): function

createTokenMatcher() return function(token): { match: boolean, tokens?: Array }.

We want to check "名詞かもしれない" contain "かも" token. Write following:

See example code with azu.github.io/morpheme-match/#名詞(かも)しれない.

const createTokenMatcher = require("morpheme-match");
const expectToken = createTokenMatcher([
    {
        "surface_form": "かも",
        "pos": "助詞",
        "pos_detail_1": "副助詞",
        "pos_detail_2": "*",
        "pos_detail_3": "*",
        "conjugated_type": "*",
        "conjugated_form": "*",
        "basic_form": "かも",
        "reading": "カモ",
        "pronunciation": "カモ"
    }
]);
const tokens = [
    {
        "surface_form": "名詞",
        "pos": "名詞",
        "pos_detail_1": "一般",
        "pos_detail_2": "*",
        "pos_detail_3": "*",
        "conjugated_type": "*",
        "conjugated_form": "*",
        "basic_form": "名詞",
        "reading": "メイシ",
        "pronunciation": "メイシ"
    },
    // Hit!
    {
        "surface_form": "かも",
        "pos": "助詞",
        "pos_detail_1": "副助詞",
        "pos_detail_2": "*",
        "pos_detail_3": "*",
        "conjugated_type": "*",
        "conjugated_form": "*",
        "basic_form": "かも",
        "reading": "カモ",
        "pronunciation": "カモ"
    },
    {
        "surface_form": "しれ",
        "pos": "動詞",
        "pos_detail_1": "自立",
        "pos_detail_2": "*",
        "pos_detail_3": "*",
        "conjugated_type": "一段",
        "conjugated_form": "未然形",
        "basic_form": "しれる",
        "reading": "シレ",
        "pronunciation": "シレ"
    },
    {
        "surface_form": "ない",
        "pos": "助動詞",
        "pos_detail_1": "*",
        "pos_detail_2": "*",
        "pos_detail_3": "*",
        "conjugated_type": "特殊・ナイ",
        "conjugated_form": "基本形",
        "basic_form": "ない",
        "reading": "ナイ",
        "pronunciation": "ナイ"
    }
];
const result = tokens.some(token => {
    const {match} = expectToken(token);
    return match;
});
console.log(result);// true

If want to get matched token, write following:

let resultTokens = [];
const result = tokens.some(token => {
    const {match, tokens} = expectToken(token);
    resultTokens = tokens;
    return match;
});
console.log(resultTokens);
/*
[ { surface_form: 'かも',
    pos: '助詞',
    pos_detail_1: '副助詞',
    pos_detail_2: '*',
    pos_detail_3: '*',
    conjugated_type: '*',
    conjugated_form: '*',
    basic_form: 'かも',
    reading: 'カモ',
    pronunciation: 'カモ' } ]
*/

Tips

morpheme-matchは_から始まるキーを無視するため、メタ情報は_で書き込む事ができます。

const expectToken = createTokenMatcher([
    {
        "surface_form": "かも",
        "pos": "助詞",
        "pos_detail_1": "副助詞",
        "pos_detail_2": "*",
        "pos_detail_3": "*",
        "conjugated_type": "*",
        "conjugated_form": "*",
        "basic_form": "かも",
        "reading": "カモ",
        "pronunciation": "カモ",
        "_cature": "$1"
    }
]);
``


## Changelog

See [Releases page](https://github.com/azu/morpheme-match/releases).

## Running tests

Install devDependencies and Run `npm test`:

    npm i -d && npm test

## Contributing

Pull requests and stars are always welcome.
For bugs and feature requests, [please create an issue](https://github.com/azu/morpheme-match/issues).

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## Author

- [github/azu](https://github.com/azu)
- [twitter/azu_re](http://twitter.com/azu_re)

## License

MIT © azu

FAQs

Package last updated on 03 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts