Skip to content

Instantly share code, notes, and snippets.

@hyuki
Last active April 18, 2018 12:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hyuki/a13378d8de4d2a4d0986799fc5836a49 to your computer and use it in GitHub Desktop.
Save hyuki/a13378d8de4d2a4d0986799fc5836a49 to your computer and use it in GitHub Desktop.
kagomeを使ってみる。 See: https://github.com/ikawaha/kagome
package main
import (
"fmt"
"strings"
"github.com/ikawaha/kagome/tokenizer"
)
func main() {
t := tokenizer.New()
tokens := t.Tokenize(`僕「そうそう。どんな正の$\varepsilon$が与えられたとしても、この条件を満たすような$\delta$が存在するといえるかな? ということ。どんな正の$\varepsilon$に対してもそのような$\delta$が存在するならば、$x \to a$のとき$f(x) \to A$だといえるし、そんな$\delta$が存在するとは限らないならば、$x \to a$のとき$f(x) \to A$だとはいえない。《関数の極限》は、そういう定義になっているね。何がひっかかるの?」`)
for _, token := range tokens {
if token.Class == tokenizer.DUMMY {
// BOS: Begin Of Sentence, EOS: End Of Sentence.
fmt.Printf("%s\n", token.Surface)
continue
}
features := strings.Join(token.Features(), ",")
fmt.Printf("%s\t%v\n", token.Surface, features)
}
}
@hyuki
Copy link
Author

hyuki commented Apr 18, 2018

$ go get -v github.com/ikawaha/kagome/...
$ kagome
すももももももももものうち
すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
$ go run kagome-sample.go
BOS
僕	名詞,代名詞,一般,*,*,*,僕,ボク,ボク
「	記号,括弧開,*,*,*,*,「,「,「
そう	副詞,助詞類接続,*,*,*,*,そう,ソウ,ソー
そう	副詞,助詞類接続,*,*,*,*,そう,ソウ,ソー
。	記号,句点,*,*,*,*,。,。,。
どんな	連体詞,*,*,*,*,*,どんな,ドンナ,ドンナ
正	名詞,一般,*,*,*,*,正,セイ,セイ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
$\	名詞,サ変接続,*,*,*,*,*
varepsilon	名詞,一般,*,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
与え	動詞,自立,*,*,一段,未然形,与える,アタエ,アタエ
られ	動詞,接尾,*,*,一段,連用形,られる,ラレ,ラレ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
として	助詞,格助詞,連語,*,*,*,として,トシテ,トシテ
も	助詞,係助詞,*,*,*,*,も,モ,モ
、	記号,読点,*,*,*,*,、,、,、
この	連体詞,*,*,*,*,*,この,コノ,コノ
条件	名詞,一般,*,*,*,*,条件,ジョウケン,ジョーケン
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
満たす	動詞,自立,*,*,五段・サ行,基本形,満たす,ミタス,ミタス
よう	名詞,非自立,助動詞語幹,*,*,*,よう,ヨウ,ヨー
な	助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
$\	名詞,サ変接続,*,*,*,*,*
delta	名詞,一般,*,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
存在	名詞,サ変接続,*,*,*,*,存在,ソンザイ,ソンザイ
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
と	助詞,格助詞,引用,*,*,*,と,ト,ト
いえる	動詞,自立,*,*,一段,基本形,いえる,イエル,イエル
か	助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ
な	助詞,終助詞,*,*,*,*,な,ナ,ナ
?	記号,一般,*,*,*,*,?,?,?
 	記号,空白,*,*,*,*, , , 
という	助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
こと	名詞,非自立,一般,*,*,*,こと,コト,コト
。	記号,句点,*,*,*,*,。,。,。
どんな	連体詞,*,*,*,*,*,どんな,ドンナ,ドンナ
正	名詞,一般,*,*,*,*,正,セイ,セイ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
$\	名詞,サ変接続,*,*,*,*,*
varepsilon	名詞,一般,*,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
に対して	助詞,格助詞,連語,*,*,*,に対して,ニタイシテ,ニタイシテ
も	助詞,係助詞,*,*,*,*,も,モ,モ
その	連体詞,*,*,*,*,*,その,ソノ,ソノ
よう	名詞,非自立,助動詞語幹,*,*,*,よう,ヨウ,ヨー
な	助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
$\	名詞,サ変接続,*,*,*,*,*
delta	名詞,一般,*,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
存在	名詞,サ変接続,*,*,*,*,存在,ソンザイ,ソンザイ
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
なら	助動詞,*,*,*,特殊・ダ,仮定形,だ,ナラ,ナラ
ば	助詞,接続助詞,*,*,*,*,ば,バ,バ
、	記号,読点,*,*,*,*,、,、,、
$	名詞,サ変接続,*,*,*,*,*
x	名詞,固有名詞,組織,*,*,*,*
 	記号,空白,*,*,*,*,*
\	名詞,サ変接続,*,*,*,*,*
to	名詞,固有名詞,組織,*,*,*,*
 	記号,空白,*,*,*,*,*
a	名詞,固有名詞,組織,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
の	助詞,連体化,*,*,*,*,の,ノ,ノ
とき	名詞,非自立,副詞可能,*,*,*,とき,トキ,トキ
$	名詞,サ変接続,*,*,*,*,*
f	名詞,一般,*,*,*,*,*
(	名詞,サ変接続,*,*,*,*,*
x	名詞,一般,*,*,*,*,*
)	名詞,サ変接続,*,*,*,*,*
 	記号,空白,*,*,*,*,*
\	名詞,サ変接続,*,*,*,*,*
to	名詞,固有名詞,組織,*,*,*,*
 	記号,空白,*,*,*,*,*
A	名詞,固有名詞,組織,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
だ	助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
と	助詞,格助詞,引用,*,*,*,と,ト,ト
いえる	動詞,自立,*,*,一段,基本形,いえる,イエル,イエル
し	助詞,接続助詞,*,*,*,*,し,シ,シ
、	記号,読点,*,*,*,*,、,、,、
そんな	連体詞,*,*,*,*,*,そんな,ソンナ,ソンナ
$\	名詞,サ変接続,*,*,*,*,*
delta	名詞,一般,*,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
存在	名詞,サ変接続,*,*,*,*,存在,ソンザイ,ソンザイ
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
と	助詞,格助詞,引用,*,*,*,と,ト,ト
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
限ら	動詞,自立,*,*,五段・ラ行,未然形,限る,カギラ,カギラ
ない	助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ
なら	助動詞,*,*,*,特殊・ダ,仮定形,だ,ナラ,ナラ
ば	助詞,接続助詞,*,*,*,*,ば,バ,バ
、	記号,読点,*,*,*,*,、,、,、
$	名詞,サ変接続,*,*,*,*,*
x	名詞,固有名詞,組織,*,*,*,*
 	記号,空白,*,*,*,*,*
\	名詞,サ変接続,*,*,*,*,*
to	名詞,固有名詞,組織,*,*,*,*
 	記号,空白,*,*,*,*,*
a	名詞,固有名詞,組織,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
の	助詞,連体化,*,*,*,*,の,ノ,ノ
とき	名詞,非自立,副詞可能,*,*,*,とき,トキ,トキ
$	名詞,サ変接続,*,*,*,*,*
f	名詞,一般,*,*,*,*,*
(	名詞,サ変接続,*,*,*,*,*
x	名詞,一般,*,*,*,*,*
)	名詞,サ変接続,*,*,*,*,*
 	記号,空白,*,*,*,*,*
\	名詞,サ変接続,*,*,*,*,*
to	名詞,固有名詞,組織,*,*,*,*
 	記号,空白,*,*,*,*,*
A	名詞,固有名詞,組織,*,*,*,*
$	名詞,サ変接続,*,*,*,*,*
だ	助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
と	助詞,格助詞,引用,*,*,*,と,ト,ト
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
いえ	動詞,自立,*,*,一段,未然形,いえる,イエ,イエ
ない	助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ
。	記号,句点,*,*,*,*,。,。,。
《	記号,括弧開,*,*,*,*,《,《,《
関数	名詞,一般,*,*,*,*,関数,カンスウ,カンスー
の	助詞,連体化,*,*,*,*,の,ノ,ノ
極限	名詞,一般,*,*,*,*,極限,キョクゲン,キョクゲン
》	記号,括弧閉,*,*,*,*,》,》,》
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
、	記号,読点,*,*,*,*,、,、,、
そういう	連体詞,*,*,*,*,*,そういう,ソウイウ,ソーユウ
定義	名詞,サ変接続,*,*,*,*,定義,テイギ,テイギ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
なっ	動詞,自立,*,*,五段・ラ行,連用タ接続,なる,ナッ,ナッ
て	助詞,接続助詞,*,*,*,*,て,テ,テ
いる	動詞,非自立,*,*,一段,基本形,いる,イル,イル
ね	助詞,終助詞,*,*,*,*,ね,ネ,ネ
。	記号,句点,*,*,*,*,。,。,。
何	名詞,代名詞,一般,*,*,*,何,ナニ,ナニ
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
ひっかかる	動詞,自立,*,*,五段・ラ行,基本形,ひっかかる,ヒッカカル,ヒッカカル
の	助詞,終助詞,*,*,*,*,の,ノ,ノ
?	記号,一般,*,*,*,*,?,?,?
」	記号,括弧閉,*,*,*,*,」,」,」
EOS

@hyuki
Copy link
Author

hyuki commented Apr 18, 2018

たとえば、

そうはいうものの、ほんものの「もののけ姫」といったののは君だよね。

という文の中には「のの」が四箇所出てくるけれど、最後の「のの」はミスタイプ。これを形態素解析で見つけることはできるだろうか?

package main

import (
	"fmt"
	"strings"

	"github.com/ikawaha/kagome/tokenizer"
)

func main() {
	t := tokenizer.New()
	tokens := t.Tokenize(`そうはいうものの、ほんものの「もののけ姫」といったののは君だよね。`)

	for _, token := range tokens {
		if token.Class == tokenizer.DUMMY {
			// BOS: Begin Of Sentence, EOS: End Of Sentence.
			fmt.Printf("%s\n", token.Surface)
			continue
		}
		features := strings.Join(token.Features(), ",")
		fmt.Printf("%s\t%v\n", token.Surface, features)
	}
}

実行結果は以下の通り。ふうむ……

BOS
そう	副詞,助詞類接続,*,*,*,*,そう,ソウ,ソー
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
いう	動詞,自立,*,*,五段・ワ行促音便,基本形,いう,イウ,イウ
ものの	助詞,接続助詞,*,*,*,*,ものの,モノノ,モノノ
、	記号,読点,*,*,*,*,、,、,、
ほん	名詞,一般,*,*,*,*,ほん,ホン,ホン
もの	名詞,非自立,一般,*,*,*,もの,モノ,モノ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
「	記号,括弧開,*,*,*,*,「,「,「
もの	名詞,一般,*,*,*,*,もの,モノ,モノ
のけ	動詞,自立,*,*,一段,連用形,のける,ノケ,ノケ
姫	名詞,一般,*,*,*,*,姫,ヒメ,ヒメ
」	記号,括弧閉,*,*,*,*,」,」,」
といった	助詞,格助詞,連語,*,*,*,といった,トイッタ,トイッタ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
の	名詞,非自立,一般,*,*,*,の,ノ,ノ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
君	名詞,代名詞,一般,*,*,*,君,キミ,キミ
だ	助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
よ	助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
ね	助詞,終助詞,*,*,*,*,ね,ネ,ネ
。	記号,句点,*,*,*,*,。,。,。
EOS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment