2017-12-17 13 views
0

bashコマンドラインで標準Hepburn systemで漢字を含む一般的な日本語を訳したいと思います。コマンドラインで一般的な日本語をローマ字化する

私はいくつかのオプションを検討してきましたが、

  • Googleの翻訳(経由シェルを翻訳入手可能)
  • KAKASIはASCIIを提供ひらがな/カタカナでのみ正確ですが、変換なし(代わりに、東京都のように東京)

だから私は、出力がdiv.outputwrapまたはdiv.output

である http://nihongo.j-talk.com の出力に含まを解析したいと思います3210

純粋にBashツール(curl/jq?)でこれを行うのは無駄だとすれば、どのようにすればPython/BeautifulSoupでこれを達成できますか?

スニペットを残して申し訳ありませんが、私はウェブサイトにデータをPOSTし、APIがない場合は結果を使用する手がかりがありません。

答えて

0

http://nihongo.j-talk.comサイトのソースhtmlを見て、私はAPIを推測しました。
手順は次のとおりです。

1)日本語の文字列をwgetでサーバーに送信し、index.htmlで結果を取得します。
2)index.htmlを解析し、ローマ字文字列を抽出します。それは私にはかなり慣れているという理由だけで、私は、Perlでパーサを書いていますが、変更またはインデックスを読み取ることにより、他の言語に変換する -

#!/bin/bash 

string="日本語は、主に日本で使われている言語である。日本では法規によって「公用語」として規定されているわけではないが、各種法令(裁判所法第74条、会社計算規則第57条、特許法施行規則第2条など)において日本語を用いることが定められるなど事実>上の公用語となっており、学校教育の「国語」でも教えられる。" 

uniqid="46a7e5f7e7c7d8a7d9636ecb077da485479b66bc" 

wget -N --post-data "uniqid=$uiqid&Submit='Translate Now'&kanji_parts=standard&kanji=$string&converter=spaced&kana_output=romaji" http://nihongo.j-talk.com/ > /dev/null 2>&1 

perl -e ' 
$file = "index.html"; 
open(FH, $file) or die "$file: $!\n"; 

while (<FH>) { 
    if (/<div id=.spaced. class=.romaji.>(.+)/) { 
     ($str = $1) =~ s/<.*?>//g; 
     $str =~ s/\&\#(\d+);/&utfconv($1)/eg; 
     print $str, "\n"; 
    } 
} 

# utf16 to utf8 
sub utfconv { 
    $utf16 = shift; 
    my $upper = ($utf16 >> 6) & 0b0001_1111 | 0b1100_0000; 
    my $lower = $utf16 & 0b0011_1111 | 0b1000_0000; 
    pack("C2", $upper, $lower); 
}' 

いくつかのコメント:ここ

は、サンプルコードです.htmlファイル。
- uniqid文字列は、私がサイトのhtmlソースから選んだものです。うまくいかない場合は、htmlソースに埋め込まれているものを確認してください。

これが役に立ちます。

関連する問題