tag:crieit.net,2005:https://crieit.net/tags/%E3%82%B2%E3%82%B7%E3%83%A5%E3%82%BF%E3%83%AB%E3%83%88%E5%B4%A9%E5%A3%8A/feed 「ゲシュタルト崩壊」の記事 - Crieit Crieitでタグ「ゲシュタルト崩壊」に投稿された最近の記事 2022-10-05T14:42:50+09:00 https://crieit.net/tags/%E3%82%B2%E3%82%B7%E3%83%A5%E3%82%BF%E3%83%AB%E3%83%88%E5%B4%A9%E5%A3%8A/feed tag:crieit.net,2005:PublicArticle/18298 2022-09-30T02:49:59+09:00 2022-10-05T14:42:50+09:00 https://crieit.net/posts/9d9313e4b4a80a56f06cc11f67c9396e ヶ″゙/ュ勺儿├崩壊文字Iニ⊃レヽ乙 ≠″ャ儿文字、'人'星文 <h1 id="ゲシュタルト崩壊文字について ギャル文字、火星文"><a href="#%E3%82%B2%E3%82%B7%E3%83%A5%E3%82%BF%E3%83%AB%E3%83%88%E5%B4%A9%E5%A3%8A%E6%96%87%E5%AD%97%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6+%E3%82%AE%E3%83%A3%E3%83%AB%E6%96%87%E5%AD%97%E3%80%81%E7%81%AB%E6%98%9F%E6%96%87">ゲシュタルト崩壊文字について ギャル文字、火星文</a></h1> <p>プライバシーと匿名性と、人を傷つけあわないようにすること ( <a href="https://crieit.net/posts/BBS-programming">参照このへんの前の方</a>や、 <a target="_blank" rel="nofollow noopener" href="https://wakaba-c3-cx.translate.goog/shii/shiichan?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=en&_x_tr_pto=wapp">このへん</a>) を考えていたら、印象にしか残らない情報がそれを満たすような気がした。</p> <p>つよく人を惹きつける言葉こそ、じょじょに風化し劣化していけば、拡散せず、最初に見たひとたちのなかでも記憶だけにとどめて、いずれ感動をなくして遠のいていくだろう。</p> <p>そのような記録されても、ビジュアルは風化していくというものをつくりたいと思った。</p> <p>文字として認識しづらく、なんとか読めるが、読みにくいというゲシュタルト崩壊。</p> <p>そういったことを考えていると、かつてあったものでそれを表現できそうなことに気がついた。</p> <p>それは、ギャル文字。<br /> <a target="_blank" rel="nofollow noopener" href="https://en.m.wikipedia.org/wiki/Gyaru-moji">https://en.m.wikipedia.org/wiki/Gyaru-moji</a></p> <p>日本語の平文を文字をゲシュタルト崩壊させるということによって、読むときに2文字や3文字に分割されたものを相似形の漢字に再構成したり、発音からもとの字を推測したりして認識する間のラグがイライラもしくは、アクセサリーを手づくりするような刺激になるのだとおもうところと、暗黙のタブーなものを暗号化させるようなニュアンスもある、広く伝わりにくい文字または言語。</p> <h5 id="Example:"><a href="#Example%3A">Example:</a></h5> <p>ギャル文字についての完全なボキャブラリーは無いので、拡張していくとそれはギャル文字ではなくなる。ある文字を、相似する文字にしてゲシュタルト崩壊させるので、ここでは仮に相似体と呼ぶことにした。<br /> <a target="_blank" rel="nofollow noopener" href="https://rentry.co/frqts">ギャル文字 ≒ ∽ 体</a></p> <blockquote> <h2 id="ナょレニを危惧すゑカゝ"><a href="#%EF%BE%85%E3%82%87%EF%BE%9A%EF%BE%86%E3%82%92%E5%8D%B1%E6%83%A7%E3%81%99%E3%82%91%EF%BD%B6%E3%82%9D">ナょレニを危惧すゑカゝ</a></h2> <p>ぇ咼去レニ<a target="_blank" rel="nofollow noopener" href="https://youtu.be/pB6UjZCMCos">小生犯罪者レニ GPS ⊃レナゑナニ″@言義言侖カゞぁっナニ</a>レナー⊂″、⊇⊇τ″@王見実レよ小生犯罪τ″@ぇ隶才甫を、ナれナニ AI 廾ィ工 ・/〒ィス├カゞ(監ネ見ヵ乂ラ@捜査τ″ぇ隶才甫ナょ@レニ王里由不日月ナょ不走己言>斥)与党@実力者レニ囲ゎれτ、内閣@ノヾッ勹工 ・/├″レニレヽゑー⊂レヽぅ⊇ー⊂τ″、⊇>れレよまゑτ″逆τ″、レヽゎレよ″小生犯罪者レニょっτ小青報@ぇ巽才尺カゞ]・/├□─」レ、ナれゑ@τ″レよナょレヽカゝー⊂レヽぅ⊇ー⊂、まナニ、牛寺権白勺ナょ立土易を禾リ用ι〒″─勺収集ιξれを禾リ用すゑ@カゞ小生犯罪τ″ぇ隶才甫歴@ぁゑ「人間」τ″ぁゑ⊇ー⊂レニょ丶)心酉己、ナれゑ亊象レニ⊃レヽτ。一番゙/・/┐°」レレニ ょ<ナょレヽ イ侖王里@典型白勺ナょイ歹リレニひ°っナニ丶)レよまっτレヽゑ@τ″、当然、⊇ぅレヽっナニ小生犯罪者を古攵意レニ隠ιτ権力@ノヾッ勹工 ・/├″レニぉ<@レよ最惡@ヶ─ス。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/6f921071e7c5497faa6bd3dabfd3cd0a6336765dd6dff.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6f921071e7c5497faa6bd3dabfd3cd0a6336765dd6dff.png?mw=700" alt="image" /></a></p> <blockquote> <p>In the past, there was a discussion about attaching GPS to sex offenders, but the reality here is that an AI scientist arrested for sex crimes (surveillance camera investigation (Despite being arrested in 2019, but not prosecuted for unknown reasons) Surrounded by influential people of the ruling party and being at the back end of the Cabinet, this is completely the opposite, and the choice of information is controlled by sex offenders Also, regarding the phenomenon of worrying about the fact that it is a "human" who has a history of arrest for sex crimes who uses a privileged position to collect data and use it. At its simplest, he fits the classic example of bad ethics, so of course deliberately hiding these sex offenders in the backend of power is the worst case scenario.</p> </blockquote> <p>ギャル文字は、おそらく 1990 年代末期から 2004 年くらいまでは使われていて、以降は忘却されていく文字、言語、文体だ。</p> <p><a target="_blank" rel="nofollow noopener" href="https://ja.m.wikipedia.org/wiki/文体">https://ja.m.wikipedia.org/wiki/文体</a></p> <p>似たようなものは中国語でもあり、それは火星語、火星文といわれている。<br /> huǒxīng wén<br /> <a target="_blank" rel="nofollow noopener" href="https://en.m.wikipedia.org/wiki/Martian_language">https://en.m.wikipedia.org/wiki/Martian_language</a></p> <p>ギャル文字は、そう命名されたので平成のJK、JD、OL、おじさんに主に使われ、じょじょに、絵文字のおじさん構文に継承されていってる気がする。絵文字のおじさん構文というのは、駐日ロシア大使館 ( <a target="_blank" rel="nofollow noopener" href="https://nitter.it/RusEmbassyJ">@RusEmbassyJ</a> ただしこれはもとのロシアのロシア語のツイートを忠実に再現してああなっているようだが ) のツイートをイメージしている。読む気を失せさせるパターンが踏襲されているらしい。</p> <p><a target="_blank" rel="nofollow noopener" href="https://ja.m.wikipedia.org/wiki/おじさん構文">https://ja.m.wikipedia.org/wiki/おじさん構文</a><br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/greymd/ojichat/blob/master/pattern/tags.go#L65">https://github.com/greymd/ojichat/blob/master/pattern/tags.go#L65</a><br /> <a href="https://crieit.now.sh/upload_images/1c6cc88b31434d41cbb23a255c1f97616337f4ce70294.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1c6cc88b31434d41cbb23a255c1f97616337f4ce70294.png?mw=700" alt="image" /></a><br /> 昭和軽薄体<br /> <a target="_blank" rel="nofollow noopener" href="https://ja.m.wikipedia.org/wiki/昭和軽薄体">https://ja.m.wikipedia.org/wiki/昭和軽薄体</a></p> <p>対して火星文は、隠語的に言葉狩り検閲をかわすために使われていたりするようで、よりゆるい、読もうとすれば読める暗号化文章のような位置づけか。<br /> いづれもジェネレーションギャップを意識しつつ、充分に普及しどの世代にも理解が進むと廃れていくような定着しない文字だ。</p> <hr /> <h2 id="弔辞 ( ノーカット版 ) より"><a href="#%E5%BC%94%E8%BE%9E+%28+%E3%83%8E%E3%83%BC%E3%82%AB%E3%83%83%E3%83%88%E7%89%88+%29+%E3%82%88%E3%82%8A">弔辞 ( ノーカット版 ) より</a></h2> <p>平成20年8月</p> <p><a target="_blank" rel="nofollow noopener" href="https://youtu.be/EEbcF__-jSo">https://youtu.be/EEbcF__-jSo</a></p> <p>[ Gestalt => ∽体 ] ξ@裏レニレよ強烈ナょ反骨米青ネ申もぁ丶)まιナニ。ぁナょナニレよす∧″τ@人を小夬<受レナ入れまιナニ。ξ@ナニめレニナニ″ま、ナれナニ⊇ー⊂も数々ぁ丶)ます 。金銭白勺レニも大、キナょ才丁撃を受レナナニ⊇ー⊂もぁ丶)ます。ιカゝιぁナょナニカゝら後 小毎@言葉ゃ、木目手を小兪£ヽ言葉を聞レヽナニ⊇ー⊂カゞぁ丶)ませω。</p> <p>[ ∽体 => rebuild ] その裏には強烈な反骨精神もありました。あなたはすベての人を快く受け入れました。そのためにだまされたことも数々あります。金銭白タにも大きなオ丁撃を受けたこともあります。しかしあなたから後悔の言葉や、相手を恨む言葉を聞いたことがありません。</p> <p>[ Gestalt => ∽体 ] ぁナょナニレよ禾厶@父@ょぅτ″ぁ丶)、兄@ょぅτ″ぁ丶)、ξιτ日寺才斤見せゑ、ぁ@底才友レナレニ無牙卩気ナょ笑彦頁レよ、レよゑカゝ年下@弟@ ょぅτ″もぁ丶)まιナニ。</p> <p>[ ∽体 => rebuild ] あなたは私の父のようであり、兄のようであり、そして時折見せる、あの底抜けに無邪気な笑顔は、はるか年下の弟のようでもありました。</p> <p>[ Gestalt => ∽体 ] ぁナょナニレよ生゙/舌す∧″τカゞ≠″ャ勹″τ″ιナニ。ナニ⊇ちゃω(ナニ⊇八良卩、ナω)@葬ィ義@日寺レニ、大、キ<笑レヽナょカゞらも、目カゝらレよ朮″□朮″□ー⊂゙/戻カゞ⊇レま″れ落ち、出木官@日寺、ナニ⊇ちゃω@ひナニレヽをt°゙/ャ└|ー⊂ナニナニレヽτレ よ「⊇@里予良卩、ぇ才斤、キゃカゞっナニ」ー⊂まナニ高笑レヽιナょカゞら、大、キナょ゙/戻を流ιτまιナニ。ぁナょナニレよ≠″ャ勹″レニょっτ牛勿亊を無ィtιτレヽっナニ@τ″す。</p> <p>[ ∽体 => rebuild ] あなたは生活すベてがギャグでした。たこちやん(たこ八郎さん)の葬儀の時に、大きく笑いながらも、目からはホ″ロホ″ロど/戻がこぼ れ落ち、出棺の時、たこちやんのひたいをピシャリとたたいては「この野郎、え折きやがった」とまた高笑いけよがら、大きな涙を流してました。あなたはギャグによって物事を無化していったのです。</p> <hr /> <p><a target="_blank" rel="nofollow noopener" href="https://news.yahoo.co.jp/articles/cd8d2611d659ac09bb3a650aa06d82b2a0840469">赤塚不二夫の仕事場兼自宅が解体へ 展覧会開催 娘・りえ子「赤塚のぬくもりに触れていただきたい」</a></p> <hr /> <h2 id="文字: ギャル文字"><a href="#%E6%96%87%E5%AD%97%3A+%E3%82%AE%E3%83%A3%E3%83%AB%E6%96%87%E5%AD%97">文字: ギャル文字</a></h2> <h3 id="words0.csv"><a href="#words0.csv">words0.csv</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://rentry.co/u7tqx">https://rentry.co/u7tqx</a></p> <p>あ;ぁ<br /> い;レヽ<br /> う;ぅ<br /> え;ぇ<br /> お;ぉ<br /> カ;ヵ<br /> ガ;ヵ\″<br /> か;ヵゝ<br /> が;ヵヾ<br /> か;カゝ<br /> が;カゞ<br /> き;、キ<br /> ぎ;、キ\″<br /> く;<<br /> ぐ;<\″<br /> け;レナ<br /> げ;レナ\″<br /> こ;⊇<br /> さ;、ナ<br /> ざ;、ナ\″<br /> し;ι<br /> じ;ι\″<br /> .<br /> .<br /> .</p> <h3 id="words2.csv"><a href="#words2.csv">words2.csv</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://rentry.co/veggwo">https://rentry.co/veggwo</a></p> <p>阿;卩可<br /> 挨;才矣<br /> 悪;惡<br /> 握;才屋<br /> 旭;九日<br /> 鯵;魚参<br /> 扱;才及<br /> 姐;女且<br /> 飴;食台<br /> 絢;糸旬<br /> 鮎;魚占<br /> 按;才安<br /> 暗;日音<br /> 以;レ丶人<br /> 伊;イ尹<br /> .<br /> .<br /> .</p> <h3 id="gyaru_typo_1enc_3.pl"><a href="#gyaru_typo_1enc_3.pl">gyaru_typo_1enc_3.pl</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://rentry.co/5nqb2">https://rentry.co/5nqb2</a></p> <pre><code class="perl">#! /usr/bin/perl ## gyaru_typo_1e_3.pl use strict; use warnings; use utf8; binmode STDIN, ':encoding(UTF-8)'; binmode STDOUT, ':encoding(UTF-8)'; binmode STDERR, ':encoding(UTF-8)'; #use Encode 'decode'; my $filename1 = "test.txt"; my $filename2 = "words0.csv"; #basics my $filename3 = "words2.csv"; # kanji my $flag = $ARGV[0]; my $encode = 1; if (defined $flag){ $encode = 0; } #---- words open(my $fh0, '<:encoding(UTF-8)', $filename2) or die "Could not open file '$filename2' $!"; my %words1 = (); my @words1one = (); while (my $row = <$fh0>) { chomp $row; if ( $row !~ m/^#/ ){ my @temppair = split(/;/,$row); my ($one,$two) = (@temppair); # print "$one $two\n"; if ($encode == 1){ $words1{"$one"} = "$two"; push(@words1one,"$one"); } else { $words1{"$two"} = "$one"; push(@words1one,"$two"); } } } close($fh0); open(my $fh1, '<:encoding(UTF-8)', $filename3) or die "Could not open file '$filename3' $!"; my %words2 = (); my @words2one = (); while (my $row = <$fh1>) { chomp $row; my @temppair = split(/;/,$row); my ($one,$two) = (@temppair); # print "$one $two\n"; if ($encode == 1){ $words2{"$one"} = "$two"; push(@words2one,"$one"); } else { $words2{"$two"} = "$one"; push(@words2one,"$two"); } } close($fh1); #---- open(my $fh, '<:encoding(UTF-8)', $filename1) or die "Could not open file '$filename1' $!"; my $text = ""; while (my $row = <$fh>) { chomp $row; my $temp = gyaruConv($row,\@words1one,\%words1) ."\n"; $text .= gyaruConv($temp,\@words2one,\%words2) . "\n"; # print $temp; # print $row; # print "\n"; } close($fh); print $text; #---- subroutine sub gyaruConv{ my ($str,$arr,$dict) = @_; chomp($str); my @word_one = @{$arr}; my %words = %{$dict}; foreach my $word_one (@word_one) { # print $words{$word_one}; my ($key,$value) = ($word_one,$words{"$word_one"}); # print "key:$key value:$value\n"; my $one = "$key"; my $two= "$value"; $str =~ s/$one/$two/g; $str =~ s/\\//g; } return "$str"; } </code></pre> <h3 id="gyaru_typo_1e.py"><a href="#gyaru_typo_1e.py">gyaru_typo_1e.py</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://rentry.co/qp5eh">https://rentry.co/qp5eh</a></p> <p>python<br /> <a target="_blank" rel="nofollow noopener" href="https://0bin.net/paste/fl-+psZF#50Aby0tVltwulAW+0CqOWzPJs5XENoZgNVdgPIKj-rA">https://0bin.net/paste/fl-+psZF#50Aby0tVltwulAW+0CqOWzPJs5XENoZgNVdgPIKj-rA</a></p> tomato tag:crieit.net,2005:PublicArticle/18212 2022-06-10T12:06:32+09:00 2022-06-19T10:52:23+09:00 https://crieit.net/posts/pycall pycall ( python 用の機械学習向けのライブラリーを Ruby で使えるようにした Ruby gem ) を機械学習向けのライブラリーじゃないもので使う。 <p><a target="_blank" rel="nofollow noopener" href="https://crieit-net.translate.goog/posts/pycall?_x_tr_sl=ja&_x_tr_tl=en&_x_tr_hl=ja&_x_tr_pto=wapp">translate to </a></p> <p><a href="https://crieit.net/posts/why">_why ( === why the lucky stiff )</a> のことを知って、Why's ( poignant ) Guide to Ruby <a target="_blank" rel="nofollow noopener" href="https://en.m.wikipedia.org/wiki/Why's_%28poignant%29_Guide_to_Ruby#:~:text=why's%20%28poignant%29%20Guide%20to%20Ruby,%20sometimes%20called%20w%28,Creative%20Commons%20Attribution-ShareAlike%20license.">:wikipedia</a> の日本語訳版 翻訳 青木靖を勝手に epub に再編集しはじめてずっとずっと 何日も作業していると ( 訳 ( どころか全てが丁寧 ) が悪いわけではなく 2 バイト文字とそうでない文字がくっついてると自分はディスクレシアのようにゲシュタルト崩壊になるので、そういうところとアーカイブされているオリジナルに近いサイトで生きているものにリンクを張り替えたりということを調べていた。つまり 2004 年くらいにレイドバックして文章の意味をおしはかっている期間が続いて )、<a target="_blank" rel="nofollow noopener" href="https://jp.quora.com/naze-Ruby-ha-kihon-teki-ni-shi-nde-iru-node-shou-ka">Ruby</a> が気になり始めた。</p> <p>Rf. http://www.aoky.net/articles/why_poignant_guide_to_ruby/</p> <p><a target="_blank" rel="nofollow noopener" href="https://en.m.wikipedia.org/wiki/Sung_Tongs">2004</a></p> <p>Scala の古本を買って読みたいと考えていたのに、なかなか進めないうちに Ruby のことにひきよせられていく。しかも、20 年近く前の。<br /> バージョン 1.8 以前。</p> <p>Ruby についてはよく知らないが、知らないうちに書いてると、これ基本的なかたこと英語になっているよなということがわかる言語で、その後に python をわからないなりに書くと、どうしても間違うところがあって、そこが最も Ruby の気に入っているポイントだった、半年から 1 年まえあたり。<br /> その間違う、お気に入りポイントは、「 <a target="_blank" rel="nofollow noopener" href="https://docs.ruby-lang.org/ja/latest/method/Kernel/m/p.html"> p </a>」。<br /> python でも自然に <code>p</code> で書き続けて、実行すると当然エラーになるが、見直してもわからない。あってる、あってるのに ... とイライラしはじめて、コーヒーをいれながら豆の香りをかいでると、嗤いだしてしまう。<br /> 「 p 」だ。</p> <p>それくらい p は自然に手になじんでしまう。というところが、すごいなと感じていて、<a target="_blank" rel="nofollow noopener" href="http://www.nct9.ne.jp/m_hiroi/func/ocaml13.html">クラス</a>とか、Ruby を使ったフレームワークだとかにはまるで興味が持てないので、とりあえず Ruby についてはもういいと思っていた。というところで、ふいに _why の存在で、急激に、そういう人がフィーリングが合ったという、その背景について知りたくなった。<br /> フラタニティー的な一色世界に見えてたけど、そうでもないの?と、アンチポストモダンと位置づけられたりする _why のその手作り風のおもしろさは、<a target="_blank" rel="nofollow noopener" href="http://www.aoky.net/articles/why_poignant_guide_to_ruby/chapter-2.html">Ruby のどのへんに共感したのだろうか</a>。</p> <p>1999 年発行の <a target="_blank" rel="nofollow noopener" href="https://logmi.jp/tech/articles/322453">matz</a> の本を買おうかどうか、結局読まないとなった紙の本がふえると、かなり精神的ダメージとなって責めてくるので、何日か迷っている。</p> <p>迷っている間に、おそらく初期の Ruby ユーザーマニュアルを見てみる。<br /> もともと matz が日本語で書いたものを英語にしたものとして _why が<a target="_blank" rel="nofollow noopener" href="https://poignant.guide/book/">本で紹介したもの</a>だが、当然、リンク切れで、同じとされているもののうちこちらが、ディスクレシアでもなんとかなりそうな感じがしたので、それを無難に翻訳してもらうものを書いた。たぶん、古いためか翻訳前の日本語のテクストは現在公開されていないようだ。まあ、日本語のテクストだと読めないかもしれない、ゲシュタルト崩壊で。おおよその古いプログラミング言語本はゲシュタルト崩壊しやすいデザインで止まっていて、現在もそれを継承していることが多い ( と思います )。</p> <p>Rf. http://www.math.bas.bg/bantchev/place/ruby-ug.html</p> <p>python</p> <pre><code class="python">!pip install googletrans==4.0.0-rc1 !python -m pip install requests beautifulsoup4 import requests,re from bs4 import BeautifulSoup from googletrans import Translator translator = Translator() url = "http://www.math.bas.bg/bantchev/place/ruby-ug.html" res = requests.get(url) soup = BeautifulSoup(res.text, "html.parser") ptag_list_0 = soup.find_all('p') for index,lines in enumerate(ptag_list_0): if(re.match(r'\w',lines.text) != None ): texts = re.sub(r'\.\s+','. ',lime.text) texts = re.sub(r'\?\s+','? ',texts) texts = re.sub(r'\!\s+','! ',texts) texts = re.sub(r'\,\s+',', ',texts) print(texts) try: translated = translator.translate(texts, dest='ja') print(index, translated.text) ptag_list_0[index].string = translated.text except IndexError: # check #res2 = requests.get(url) #soup2 = BeautifulSoup(res2.text, "html.parser") #ptag_list_2 = soup2.find_all('p') # # #for index,lines in enumerate(ptag_list_2): # print(lines.text) # print(ptag_list_0[index].text) metatag = soup.new_tag('meta') metatag.attrs['charset'] = "utf-8" soup.head.append(metatag) import os filename = os.path.basename(url) with open(filename, "wb") as f_output: f_output.write(soup.prettify("utf-8")) </code></pre> <p>web サイトのソースのなかの p タグで囲まれた文字列を順番に google の翻訳にかけると、だいたい文章が都合よく翻訳できる、という前提で、反対に、都合悪いというのは、それ ( <code><p></code> タグ ) 以外のとこがプログラムコードを表現した箇所だったりしたら、コードのメソッドが直訳されたり、ピリオドが 。になったりで利用しづらくなる。つまり、自然言語のできるだけ訳してほしいところだけを選んで機械翻訳したいので、大まかに選別するということだ。</p> <p>そして、その前提で、じゃあ、p タグのところだけ機械的に翻訳して、またもとあった HTM ソースに戻したら、70% くらい翻訳されてるんじゃない?という予想を立ててやってみたというものだ。</p> <p>もちろんそのままを web ページ翻訳にしてもいいけど、そうすると都合悪いとこもその時点でwebサービスの機械学習の結果の精度が完全にいいとこまできてないと払拭できないので、直していく作業がでてくる。読めなくなるし。<br /> だから、<code><p></code> から <code></p></code> までだけ、あとは絶対に触らなくていいからねと <a target="_blank" rel="nofollow noopener" href="https://vielhuber-de.translate.goog/en/blog/google-translation-api-hacking/?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja">google tanslate</a> に依頼して、翻訳済みの p タグ内テキストを HTML に書き戻すというプログラムになっている。</p> <p><a target="_blank" rel="nofollow noopener" href="https://0bin.net/paste/7Shvy8cs#XuXpgMp0-t3HUu/idtJSO16Y3JpHDG5ydCoY9+JEhuW">例えばこのページでやってみるとこうなる。</a></p> <p>やってみておかしいなと思ったのは、python beautifulsoup4 だとパースされたオブジェクト ( 上の例では <code>doc</code> のことを指す ) って深いコピーじゃなく、element として変更すると ( 上の例では <code>ptag_list_0</code> ) <a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/65106473/how-to-change-make-changes-and-update-source-code-using-beautifulsoup">オブジェクトの持つ値も変更されている</a>んだということだった。奇妙に感じたがそういうものだった。</p> <hr /> <p>PyCall 実験</p> <p>PyCall は Ruby 深層学習のために python をバインド ( ではなく、ブリッジらしいけど、バインド?) する感じで、python 用の機械学習のライブラリを Ruby で使えるようにする目的で用意されているので、機械学習のライブラリ以外はどうなのかな?と、この上の python コードで使用したライブラリを Ruby で呼んでみる。</p> <pre><code class="ruby">html = `curl -s 'http://www.math.bas.bg/bantchev/place/ruby-ug.html'` require 'oga' #require 'nokogiri' require 'pycall/import' include PyCall::Import pyfrom 'googletrans',import: :Translator translator = Translator.new doc = Oga.parse_html(html) #doc = Nokogiri::HTML.parse(html) doc.css('p').each {|x| # puts &quot;#{x.text}&quot; if x.text != "" && (x.text.match?(/^\w/) || x.text.match?(/^\(/)) x.text.gsub!(/^s*/,'') x.text.to_s.gsub!(/\.\s*/,'') begin translated = translator.translate(x.text,dest='ja') p x['text'] = translated.text rescue => evar p $! end else # p x.text end } p doc.to_xml #p doc.to_html </code></pre> <p>できますね。</p> <p>では、<a target="_blank" rel="nofollow noopener" href="https://qiita.com/dauuricus/items/7da2e5f14c965da18106">vosk はどうだろう</a>?</p> tomato