ぺんぎんでもできる〇〇

ためしたちっちゃいこと1つ1つを書いたり,妄想を書いたり.

BSD sed(OSXのsed)のタブ置換

形態素解析器のMeCabの出力の「,」をタブ文字に置換したくてsedコマンドでやろうと思ったら詰まった. 単純に知識不足な話だとは思うけど,繰り返さないようにメモ. ここで使っているsedは,GNU sedではなくBSD sedOSXsed).

例えば,以下の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

この後は,これに人力でタグ付けして固有表現抽出器の学習データを作ってみようと思う.