BSD sed(OSXのsed)のタブ置換
形態素解析器のMeCabの出力の「,」をタブ文字に置換したくてsedコマンドでやろうと思ったら詰まった. 単純に知識不足な話だとは思うけど,繰り返さないようにメモ. ここで使っているsedは,GNU sedではなくBSD sed(OSXのsed).
例えば,以下のhoge.txtという内容のファイルがあるとする.
この 連体詞,*,*,*,*,*,この,コノ,コノ 論文 名詞,一般,*,*,*,*,論文,ロンブン,ロンブン で 助詞,格助詞,一般,*,*,*,で,デ,デ は 助詞,係助詞,*,*,*,*,は,ハ,ワ , 記号,読点,*,*,*,*,,,,,, 研究 名詞,サ変接続,*,*,*,*,研究,ケンキュウ,ケンキュー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ て 助詞,接続助詞,*,*,*,*,て,テ,テ い 動詞,非自立,*,*,一段,未然形,いる,イ,イ ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ こと 名詞,非自立,一般,*,*,*,こと,コト,コト を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 示し 動詞,自立,*,*,五段・サ行,連用形,示す,シメシ,シメシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ . 記号,句点,*,*,*,*,.,.,. EOS
これに単純に
$ sed -e s/,/\t/g hoge.txt
とするとこうなる.
この 連体詞t*t*t*t*t*tこのtコノtコノ 論文 名詞t一般t*t*t*t*t論文tロンブンtロンブン で 助詞t格助詞t一般t*t*t*tでtデtデ は 助詞t係助詞t*t*t*t*tはtハtワ , 記号t読点t*t*t*t*t,t,t, 研究 名詞tサ変接続t*t*t*t*t研究tケンキュウtケンキュー を 助詞t格助詞t一般t*t*t*tをtヲtヲ し 動詞t自立t*t*tサ変・スルt連用形tするtシtシ て 助詞t接続助詞t*t*t*t*tてtテtテ い 動詞t非自立t*t*t一段t未然形tいるtイtイ ない 助動詞t*t*t*t特殊・ナイt基本形tないtナイtナイ こと 名詞t非自立t一般t*t*t*tことtコトtコト を 助詞t格助詞t一般t*t*t*tをtヲtヲ 示し 動詞t自立t*t*t五段・サ行t連用形t示すtシメシtシメシ た 助動詞t*t*t*t特殊・タt基本形tたtタtタ . 記号t句点t*t*t*t*t.t.t. EOS
コレジャナイ感.
$ sed -e s/,/$(echo '\t')/g hoge.txt
としてみても同様の結果になる.
解決策
$ sed -e s/,/$'\t'/g hoge.txt
結果は以下のような感じになる.
この 連体詞 * * * * * この コノ コノ 論文 名詞 一般 * * * * 論文 ロンブン ロンブン で 助詞 格助詞 一般 * * * で デ デ は 助詞 係助詞 * * * * は ハ ワ , 記号 読点 * * * * , , , 研究 名詞 サ変接続 * * * * 研究 ケンキュウ ケンキュー を 助詞 格助詞 一般 * * * を ヲ ヲ し 動詞 自立 * * サ変・スル 連用形 する シ シ て 助詞 接続助詞 * * * * て テ テ い 動詞 非自立 * * 一段 未然形 いる イ イ ない 助動詞 * * * 特殊・ナイ 基本形 ない ナイ ナイ こと 名詞 非自立 一般 * * * こと コト コト を 助詞 格助詞 一般 * * * を ヲ ヲ 示し 動詞 自立 * * 五段・サ行 連用形 示す シメシ シメシ た 助動詞 * * * 特殊・タ 基本形 た タ タ . 記号 句点 * * * * . . . EOS
この後は,これに人力でタグ付けして固有表現抽出器の学習データを作ってみようと思う.