!!!テキスト処理 //{{bbs}} {{outline}} !!Linuxコマンド 参考サイト https://hydrocul.github.io/wiki/commands/ !!文字列の置き換え !tr *テキストファイル中の特定の文字を置き換える。 **置き換える文字が、一文字ずつ順に対応しているところがポイント **temp.parsedというファイル内の丸かっこを角かっこに置き換える cat temp.parsed | tr '()' '[]' !!OpenNLP http://opennlp.sourceforge.net/projects.html !!pdfファイルからテキストを抽出する。pdftotext pdftotext -enc EUC-JP text.pdf これで、text.txt というファイルが生成される。 !!American National Corpus におけるn-gram表現の抽出 1)本文のみのファイルをひとまとめにする cat *trans.xml > sw20.all 2)タグの除去 perl -pe 's/<.+?>//g' sw20.all > sw20.txt 3)n-gram抽出プログラムをかける(Ngram.pmを応用) freqNgram sw20.txt > sw20.ngram 4)結果 2 you know 980 2 it s 609 2 that s 488 2 don t 392 2 um hum 389 2 i think 270 3 i don t 240 2 i m 234 2 uh huh 224 2 a lot 218 *まとめてやると cat *trans.xml | perl -pe 's/<.+?>//g' > file.txt freqNgram file.txt > file.ngram freqNgramは引数にファイル名を要求するので、パイプ処理はできない。 !!perlでxmlのタグの削除 perl -pe 's/<[a-zA-Z0-9 ="\.\?\!\/\-:_]*>//g' file.xml perl -pe 's/<[\w\s\d="\.\?\!\/\-:_]*>//g' file.xml perl -pe 's/<.+?>//g' file.xml 繰り返しを表す+の後ろの?は「最短一致」 これを指定しないと「最長一致」でマッチしてしまう。 !!emacsで日付の挿入 .emacs.el - sugiura (2006年03月16日 13時05分14秒) ;; insert date (defun foo () (interactive) (insert (concat "["(format-time-string "%Y-%m-%d")"]("(format-time-string "%A")")"))) (define-key global-map "\C-cd" 'foo) これで [2006-03-16](木曜日) とでる。 {{comment}} !!perlのモジュールのインストール - sugiura (2006年01月15日 06時37分37秒) +http://search.cpan.org/ からダウンロード +解凍 +perl Makefile.PL +make +make test +su +make install {{comment}} !!perlでの複数行にわたるコメントアウト - sugiura (2005年12月08日 03時10分00秒) =pod この部分をコメントアウト =cut {{comment}} !!emacs での取り消し - sugiura (2005年10月04日 15時47分48秒) C-x u {{comment}} !!サクラエディターを使ったテキスト処理 - sugiura (2005年09月17日 10時44分20秒) http://sakura-editor.sourceforge.net/ *関連情報 **http://www.geocities.jp/maru3128/sakura.html +パッケージ版をダウンロードしてインストールする。 **http://members.at.infoseek.co.jp/sakura_editor/package/sinst1-5-5-0.exe +環境を設定する **フォント ***メニューの「設定」から「フォント設定」:MS明朝の12ポイントがよい **行の折り返し ***メニューの「設定」から「現在のウィンドウ幅で折り返し」 +検索 **メニューの「検索」から「検索」 **メニューの「検索」から「Grep」 ***ファイルが保存してないと「現在編集中のファイルから検索」が使えない。 ***正規表現が使える +置換 **メニューの「検索」から「置換」 **「正規表現」を使うことでいろいろとテキスト処理ができる。 例:べたうちテキストを、一文一行にする。 「。」があったら改行すればよい。 「。」を「。改行」に置き換える。 「改行」は正規表現で「\r\n」(Windows上の場合) つまり、「。」を「。\r\n」に置き換える、とすればよい。 {{comment}} !!htmlファイルをテキストファイルに整形するには - sugiura (2005年08月11日 02時13分04秒) lynx -dump URL これで、もとのhtmlファイルの「見た目」を「一応」保った形で、テキストファイルが出力される。(URLは実際のhttp....を入れる) あとは、これをリダイレクトすれば、様々なテキスト処理ができる。 *例:単語数を数える。 lynx -dump URL | wc -w *例:Webページの変更をチェックする lynx -dump URL > file1.txt lynx -dump URL > file2.txt diff file1.txt file2.txt {{comment}} !!perlメモ - sugiura (2005年07月17日 02時35分43秒) http://www.din.or.jp/~ohzaki/perl.htm マルチバイトの文字のマッチングの処理方法が参考になった。 これを参考に、webGrep for NESSを修正。 「犬」を入れてもだいじょうぶ。 {{comment}}