Mecab日语分词

Mac

brew install mecab mecab-ipadic
export CGO_LDFLAGS="`mecab-config --libs`"
export CGO_CFLAGS="-I`mecab-config --inc-dir`"
go get -u github.com/shogo82148/go-mecab

Linux

yum install mecab mecab-ipadic mecab-devel
export CGO_LDFLAGS="`mecab-config --libs`"
export CGO_CFLAGS="-I`mecab-config --inc-dir`"

Usage

mecab 输入内容回车

指定输入输出文件
mecab input.txt -o output.txt

Format

小野さん,今日はしっかり食べておいてください。明日からハードスケジュールで,あちこち行きますからね。

tagger, _ := mecab.New(map[string]string{"output-format-type": "wakati"})
	tagger, _ := mecab.New(map[string]string{"output-format-type": "wakati"})
	defer tagger.Destroy()
	format := c.FormValue("format")
	if format == "lattice" {
		lattice, _ := mecab.NewLattice()
		defer lattice.Destroy()
		lattice.SetSentence(c.FormValue("sentence"))
		_ = tagger.ParseLattice(lattice)
		r := lattice.String()
		
		return util.Success(c, strings.Split(r, "\n"))
	}
	
	result, _ := tagger.Parse(c.FormValue("sentence"))
	return util.Success(c, strings.Split(result, "\n"))
	
//lattice 换行区分
[
  "小野\t名詞,固有名詞,人名,姓,*,*,小野,オノ,オノ",
  "さん\t名詞,接尾,人名,*,*,*,さん,サン,サン",
  ",\t記号,読点,*,*,*,*,,,,,,",
  "今日\t名詞,副詞可能,*,*,*,*,今日,キョウ,キョー",
  "は\t助詞,係助詞,*,*,*,*,は,ハ,ワ",
  "しっかり\t副詞,助詞類接続,*,*,*,*,しっかり,シッカリ,シッカリ",
  "食べ\t動詞,自立,*,*,一段,連用形,食べる,タベ,タベ",
  "て\t助詞,接続助詞,*,*,*,*,て,テ,テ",
  "おい\t動詞,非自立,*,*,五段・カ行イ音便,連用タ接続,おく,オイ,オイ",
  "て\t助詞,接続助詞,*,*,*,*,て,テ,テ",
  "ください\t動詞,非自立,*,*,五段・ラ行特殊,命令i,くださる,クダサイ,クダサイ",
  "。\t記号,句点,*,*,*,*,。,。,。",
  "明日\t名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ",
  "から\t助詞,格助詞,一般,*,*,*,から,カラ,カラ",
  "ハード\t名詞,固有名詞,人名,姓,*,*,ハード,ハード,ハード",
  "スケジュール\t名詞,一般,*,*,*,*,スケジュール,スケジュール,スケジュール",
  "で\t助詞,格助詞,一般,*,*,*,で,デ,デ",
  ",\t記号,読点,*,*,*,*,,,,,,",
  "あちこち\t名詞,代名詞,一般,*,*,*,あちこち,アチコチ,アチコチ",
  "行き\t動詞,自立,*,*,五段・カ行促音便,連用形,行く,イキ,イキ",
  "ます\t助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス",
  "から\t助詞,接続助詞,*,*,*,*,から,カラ,カラ",
  "ね\t助詞,終助詞,*,*,*,*,ね,ネ,ネ",
  "。\t記号,句点,*,*,*,*,。,。,。",
  "EOS",
  ""
]

//normal 空格区分

    [
    "小野 さん , 今日 は しっかり 食べ て おい て ください 。 明日 から ハード スケジュール で , あちこち 行き ます から ね 。 ",
        ""
    ]