オリジナルのフレーズを取得する方法はありますか?Apertiumトランスレータ。
I.E.
phrase: {
original: { Hola, buenos días},
translated: {Hello, good morning}
}
翻訳を改善するためのメカニズムを作るには、その必要があります。
オリジナルのフレーズを取得する方法はありますか?Apertiumトランスレータ。
I.E.
phrase: {
original: { Hola, buenos días},
translated: {Hello, good morning}
}
翻訳を改善するためのメカニズムを作るには、その必要があります。
コマンドラインインターフェイスからコーパスを送信している場合(例:
xzcat corpus.sme.xz | sed 's/$/ ./' | apertium -f html-noent sme-nob > translated.nob.mt
あなたは出力に次の入力を取得するために、その後、単に
xzcat corpus.sme.xz | paste - translated.nob.mt
を試すことができます。これは、改行で物を分割したいと仮定しています。 sed
には、改行の前後に単語が移動しないようにするためのルールがあります(ルールは文境界を越えて移動しない傾向があります)。
これは高速ですが、少しハッキーです。多くのエッジケースがあります。
あなたはより多くの制御をしたい場合は、一つの方法は、ローカルJSON APIをインストールし、一度に一つのリクエストを送ることであろう。あなたが最近のDebian/Ubuntuのを持っている(またはapertium reposのいずれかを使用している)場合は
は、あなたが
sudo apt install apertium-apy
sudo systemctl start apertium-apy # start it right now
sudo systemctl enable apertium-apy # let it start on next boot
でAPIを取得することができます。そして、あなたは次のように変換することができます。
$ echo 'Jeg liker ikke ansjos' | curl --data-urlencode '[email protected]' 'localhost:2737/translate?langpair=nob|nno'
{"responseDetails": null, "responseData": {"translatedText": "Eg likar ikkje ansjos"}, "responseStatus": 200}
デフォルトでapertium-APYをtを働くこと(標準AJAXリクエストとともにまたはJavaScriptから、
http://wiki.apertium.org/wiki/Apertium-apy/Debianと
http://wiki.apertium.org/wiki/Apertium-apy#Usageにおけるいくつかのドキュメント)
注/ usr/share/apertium/modesにあるペア。 (systemctlの代わりに)手動で起動する場合は、別のパスを指定することができます。
あなたはあなたの例では持っていたJSON形式を生成したい場合は、最も簡単な方法は、例えば、jq
(sudo apt install jq
)を用いることであろう
$ orig="Jeg liker ikke ansjos"
$ echo "$orig" \
| curl -Ss --data-urlencode '[email protected]' 'localhost:2737/translate?langpair=nob|nno' \
| jq "{phrase: {original:\"$orig\", translated:.responseData.translatedText }}"
{
"phrase": {
"original": "Jeg liker ikke ansjos",
"translated": "Eg likar ikkje ansjos"
}
}
又はコーパスに:
xzcat corpus.nob.xz | while read -r orig; do
echo "$orig" \
| curl -Ss --data-urlencode '[email protected]' 'localhost:2737/translate?langpair=nob|nno' \
| jq "{phrase: {original:\"$orig\", translated:.responseData.translatedText}}";
done
(paste
バージョンは5.5Sを取りながら、500行の簡単なテストは、この撮影23.7sウォールクロック時間を示した)