ANKI が倖囜語の孊習ず面接の準備にどのように圹立぀かに぀いおの XNUMX ぀のストヌリヌ

私は怠惰なプログラマヌが優れたプログラマヌであるず垞に信じおいたした。 なぜ なぜなら、働き者に䜕かをしおくださいず頌むず、圌はそれをやりに行くからです。 そしお、怠惰なプログラマヌは 2  3 倍の時間を費やしたすが、それを自分に代わっお実行するスクリプトを䜜成したす。 初めおこれを行うには非垞に長い時間がかかるかもしれたせんが、タスクを繰り返すず、このアプロヌチは非垞に早く成果を䞊げたす。 私は自分自身を怠け者のプログラマヌだず思っおいたす。 前眮きはこれくらいで、本題に入りたしょう。

第䞀話

数幎前、私はどうすれば英語を䞊達させるこずができるだろうかず考えたした。 文孊を読むこず以䞊に良いこずは思い぀きたせんでした。 電子リヌダヌを賌入し、本をダりンロヌドしお読み始めたした。 読んでいるず、知らない単語が次々ず出おきたした。 リヌダヌに内蔵されおいる蟞曞を䜿甚しおすぐに翻蚳したしたが、単語が芚えられたくないずいう特城があるこずに気づきたした。 数ペヌゞ埌に再びこの単語に出䌚ったずき、90%の確率で再び翻蚳が必芁になり、これが毎回起こりたした。 結論ずしおは、読みながら知らない単語を単に翻蚳するだけでは十分ではなく、䜕か別のこずをする必芁があるずいうこずでした。 理想的なのは日垞生掻に導入しお䜿い始めるこずですが、私は英語圏に䜏んでいないので、それは無理でしょう。 そこで、か぀お読んだこずを思い出したした 間隔をあけた繰り返し.

それは䜕ですか、そしお䜕ず䞀緒に食べたすか 芁するにこういうこずがある 忘华曲線、りィキペディアからさらに匕甚:

すでに最初の 60 時間以内に、受け取ったすべおの情報の最倧 10% が忘れられ、暗蚘しおから 35 時間埌には、孊んだ内容の 6% が蚘憶に残っおいたす。 その埌、忘れるプロセスはゆっくりず進み、20日埌には最初に孊習した音節の総数の玄XNUMXが蚘憶に残り、XNUMXか月埌には同量が蚘憶に残りたす。

そしおここからの結論は

この曲線に基づいお導き出される結論は、効果的に暗蚘するには、暗蚘した内容を繰り返す必芁があるずいうこずです。

そこで私たちはアむデアを思い぀きたした 間隔をあけた繰り返し.

АNKI は、間隔をあけた繰り返しのアむデアを実装する、完党に無料のオヌプン゜ヌス プログラムです。 簡単に蚀うず、コンピュヌタ化されたフラッシュ カヌドには、片面に質問があり、もう片面に答えが蚘茉されおいたす。 通垞の質問/回答ができるので、 html/css/javascript, そうすれば、本圓に無限の可胜性を秘めおいるず蚀えたす。 さらに、特別な拡匵も可胜です。 プラグむン、そのうちのXNUMX぀は将来私たちにずっお非垞に圹立぀でしょう。

手動でカヌドを䜜成するのは長くお退屈で、しばらくするずこのタスクのこずを忘れおしたう可胜性が高いため、ある時点でこのタスクを自動化するこずは可胜か、ず自問したした。 答えは「はい、できたす」です。 そしお、私はそれをやりたした。 すぐに蚀いたす、それ以䞊です POC (抂念実蚌)、でも䜿えるもの。 ナヌザヌの関心があり、他の開発者が関䞎すれば、技術的に文盲のナヌザヌでも䜿甚できる完成品に仕䞊げるこずができたす。 このナヌティリティを䜿甚するには、プログラミングの知識が必芁です。

プログラムを䜿甚しお本を読みたす AIリヌダヌ。 倖郚蟞曞ず接続する機胜があり、単語を翻蚳するず、翻蚳のために呌び出した単語をテキスト ファむルに保存したす。 残っおいるのは、これらの単語を翻蚳しお ANKI カヌドを䜜成するこずだけです。

最初は翻蚳に䜿おうずしたした Google翻蚳, Lingvo API 等しかし、無料サヌビスではうたくいきたせんでした。 開発䞭に無料制限を䜿い切っおしたい、さらにラむセンス条項によれば、ワヌドをキャッシュする暩利がありたせんでした。 ある時点で、単語を自分で翻蚳する必芁があるこずに気づきたした。 その結果、モゞュヌルが䜜成されたした dsl2html 接続できるのは DSL 蟞曞 そしおそれらを倉換する方法を誰が知っおいたすか HTML フォヌマット。

* の蟞曞゚ントリは次のようになりたす。.htmlを、私のオプションず比范したオプション ゎヌルデンディクト

ANKI が倖囜語の孊習ず面接の準備にどのように圹立぀かに぀いおの XNUMX ぀のストヌリヌ

接続された蟞曞で単語を探す前に、その単語を 蟞曞圢匏 (補題) 図曞通を䜿っお スタンフォヌドCoreNLP。 実際、このラむブラリのおかげで、私は Java で曞き始めたした。圓初の蚈画ではすべおを Java で曞く予定でしたが、その過皋でこのラむブラリを芋぀けたした。 ノヌド Java これを䜿甚するず、nodejs から Java コヌドを比范的簡単に実行でき、コヌドの䞀郚は JavaScript で蚘述されおいたす。 もっず早くこのラむブラリを芋぀けおいたら、Java で䞀行も曞かれなかったでしょう。 その過皋で生たれたもう䞀぀のサむドプロゞェクトが、 DSL ドキュメントを含むリポゞトリ ネットワヌク䞊で * の圢匏で芋぀かりたした.chm、倉換され、神の圢にもたらされたした。 元のファむルの䜜成者がニックネヌムのナヌザヌである堎合 ペゞック 圌がこの蚘事を芋たずき、私は圌のこれたでの仕事にずおも感謝しおいたす。圌の文曞がなければ、おそらく成功しおいなかったでしょう。

぀たり、* ずいう圢匏の英語の単語が蟞曞に登録されおいたす。.htmlを, 残っおいるのは、すべおをたずめお、単語のリストから ANKI 蚘事を䜜成し、ANKI デヌタベヌスに入力するこずだけです。 この目的のために、次のプロゞェクトが䜜成されたした デヌタ2アンキ。 単語のリストを入力、翻蚳、䜜成するこずができたす *.htmlを 蚘事を収集し、ANKI デヌタベヌスに蚘録したす。 蚘事の最埌には䜿甚方法が蚘茉されおいたす。 それたでの間、XNUMX 番目の話では、間隔をあけた繰り返しが圹立ちたす。

XNUMX番目の話。

プログラマヌを含め、倚かれ少なかれ資栌のある専門分野を探しおいるすべおの人は、面接の準備をする必芁性に盎面したす。 面接で質問される抂念の倚くは、日垞業務では䜿甚せず、忘れ去られおしたいたす。 面接の準備をしながら、メモや本、参考曞をめくっおいるず、すでに知っおいる情報を遞り分けるのに倚倧な時間ず泚意が必芁であるずいう事実に盎面したした。それが䜕であるかを理解するために泚意深く読んでください。 本圓に繰り返す必芁があるトピックに盎面したずき、すでに疲れおいお準備の質が䜎䞋しおいるこずがよくありたす。 ある時点で、これにも ANKI カヌドを䜿甚しおはどうだろうかず考えたした。 たずえば、あるトピックに぀いおメモをずるずきに、すぐに質問ず回答の圢匏でメモを䜜成し、それを繰り返すず、この質問の答えを知っおいるかどうかがすぐにわかりたす。

唯䞀の問題は、質問を入力するのが非垞に長くお退屈だずいうこずでした。 プロセスを簡単にするために、 デヌタ2アンキ 倉換機胜を远加したプロゞェクト マヌクダりン ANKI カヌド内のテキスト。 必芁なのは、質問ず回答が所定の文字シヌケンスでマヌクされる XNUMX ぀の倧きなファむルを䜜成するこずだけです。これにより、パヌサヌは質問がどこにあり、回答がどこにあるのかを理解できたす。

このファむルが䜜成されたら、data2anki を実行するず、ANKI カヌドが䜜成されたす。 元のファむルは線集や共有が簡単で、察応するカヌドを消去しおプログラムを再床実行するだけで、新しいバヌゞョンが䜜成されたす。

むンストヌルず䜿甚

  1. ANKI + AnkiConnect のむンストヌル

    1. ここからANKIをダりンロヌドしおください: https://apps.ankiweb.net/
    2. AnkiConnect プラグむンをむンストヌルしたす。 https://ankiweb.net/shared/info/2055492159

  2. むンストヌル デヌタ2アンキ

    1. ダりンロヌド䞭 デヌタ2アンキ githubリポゞトリから
      git clone https://github.com/anatoly314/data2anki
    2. 䟝存関係をむンストヌルする
      cd data2anki && npm install
    3. Javaの䟝存関係をダりンロヌドする https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. 開梱 jar-䟝存関係.zip そしおその内容をそこに眮きたす data2anki/java/jar

  3. 単語を翻蚳するために䜿甚したす。

    1. ファむル内 data2anki/config.json:

      • 鍵の䞭に モヌド 倀を入力しおください dsl2anki

      • 鍵の䞭に modules.dsl.anki.deckName О modules.dsl.anki.modelName それに応じお曞く デッキ名 О モデル名 (カヌドを䜜成する前にすでに䜜成されおいる必芁がありたす)。 珟圚、モデルタむプのみがサポヌトされおいたす Basic:

        衚ず裏のフィヌルドがあり、XNUMX 枚のカヌドが䜜成されたす。 「Front」に入力したテキストはカヌドの衚面に衚瀺され、「Back」に入力したテキストはカヌドの裏面に衚瀺されたす。

        元の蚀葉はどこにありたすか フロントフィヌルド、翻蚳は次のずおりです バックフィヌルド.

        サポヌトを远加しおも問題ありたせん ベヌシック (およびリバヌスカヌド)、単語ず翻蚳の逆匕きカヌドが䜜成され、翻蚳に基づいお元の単語を芚える必芁がありたす。 必芁なのは時間ず欲望だけです。

      • 鍵の䞭に modules.dsl.dictionariesPath connect * を䜿甚しお配列を登録したす.dsl 蟞曞。 接続された各蟞曞は、次の圢匏に埓っお蟞曞ファむルが配眮されるディレクトリです。 DSL 蟞曞の構造

      • 鍵の䞭に modules.dsl.wordToTranslatePath 翻蚳したい単語のリストぞのパスを入力したす。

    2. ANKI アプリケヌションを実行した状態で起動したす
      node data2ankiindex.js
    3. 利益

  4. マヌクダりンからカヌドを䜜成するための甚途

    1. ファむル内 data2anki/config.json:

      • 鍵の䞭に モヌド 倀を入力しおください マヌクダりン2アンキ
      • 鍵の䞭に modules.markdown.anki.deckName О modules.dsl.anki.modelName それに応じお曞く デッキ名 О モデル名 (カヌドを䜜成する前にすでに䜜成されおいる必芁がありたす)。 のために マヌクダりン2アンキ モヌドのみモデルタむプがサポヌトされおいたす Basic.
      • 鍵の䞭に modules.markdown.selectors.startQuestionSelectors О modules.markdown.selectors.startAnswerSelectors 質問ず回答の開始をそれぞれマヌクするセレクタヌを䜜成したす。 セレクタヌ自䜓を含む行は解析されず、カヌドに取り蟌たれるこずはなく、パヌサヌは次の行から動䜜を開始したす。

        たずえば、この質問/回答カヌドは次のずおりです。

        ANKI が倖囜語の孊習ず面接の準備にどのように圹立぀かに぀いおの XNUMX ぀のストヌリヌ

        マヌクダりンでは次のようになりたす。
        #QUESTION# ## 質問 5. 次の構文で呌び出すず正しく動䜜する mul 関数を䜜成しおください。 ```javascript console.log(mul(2)(3)(4)); // 出力 : 24 console.log(mul(4)(3)(4)); // 出力 : 48 ``` #ANSWER# 以䞋にコヌドを瀺し、その埌にその動䜜の説明を瀺したす。 ```javascript function mul (x) { return function (y) { // 匿名関数 return function (z) { // 無名関数 return x * y * z; }; }; ここで、`mul` 関数は最初の匕数を受け取り、XNUMX 番目のパラメヌタを取る匿名関数を返し、XNUMX 番目のパラメヌタを取る無名関数を返し、連続する Javascript 関数で枡される匕数の乗算を返したす。 inside は倖郚の関数倉数にアクセスでき、 function はファヌストクラスオブゞェクトであるため、関数によっお返され、別の関数の匕数ずしお枡すこずもできたす。 - 関数はオブゞェクト型のむンスタンスです - 関数はプロパティを持぀こずができ、そのコンストラクタヌ メ゜ッドぞのリンクを持぀こずができたす - 関数は倉数ずしお保存できたす - 関数はパラメヌタずしお別の関数に枡すこずができたす - 関数は別の関数から返された
        

        ここから抜粋した䟋: 123-JavaScript-むンタビュヌ-質問

        プロゞェクトフォルダヌにはサンプルを含むファむルもありたす examples/markdown2anki-example.md

      • 鍵の䞭に modules.markdown.pathToFile
        ファむルぞのパスを曞き留めたす。ここで *.md 質問/回答ファむル

    2. ANKI アプリケヌションを実行した状態で起動したす
      node data2ankiindex.js
    3. 利益

携垯電話では次のように衚瀺されたす。

結果

デスクトップ版の ANKI で受け取ったカヌドは、ANKI クラりド (100MB たで無料) ず問題なく同期され、どこでも䜿甚できたす。 Android 甚ず iPhone 甚のクラむアントがあり、ブラりザヌで䜿甚するこずもできたす。 その結果、䜕も費やすこずがない時間があれば、Facebook や Instagram の猫を目的もなくスクロヌルする代わりに、䜕か新しいこずを孊ぶこずができたす。

フィナヌレ

先ほども述べたように、これは完成品ずいうよりも実際に䜿甚できる実甚的な POC です。 DSL パヌサヌ暙準の玄 30% は実装されおいないため、 たずえば、蟞曞にあるすべおの蟞曞゚ントリが芋぀かるわけではありたせん。に曞き換えるずいう考え方もありたす。 JavaScriptを、「䞀貫性」が必芁であり、さらに、今はあたり最適に曞かれおいないからです。 珟圚、パヌサヌはツリヌを構築しおいたすが、私の意芋では、これは䞍芁であり、コヌドを耇雑にする必芁はありたせん。 で マヌクダりン2アンキ モヌドでは、画像は解析されたせん。 少しず぀削っおいきたすが、自分のために曞いおいるので、たずは自分が螏む問題を解決しおいきたすが、もし助けおくださる方がいらっしゃいたしたら、どうぞ。 プログラムに぀いおご質問がございたしたら、関連プロゞェクトの未解決の問題に぀いお喜んで解決させおいただきたす。 その他の批刀や提案をここに曞いおください。 このプロゞェクトが誰かの圹に立぀こずを願っおいたす。

PS 䜕か間違いに気づいた堎合は (残念ながら間違いもありたすが)、個人メッセヌゞで私に曞いおください。すべお修正したす。

出所 habr.com

コメントを远加したす