电报机器人学习语言


不久前,我移居芬兰,决定需要了解当地语言。 我和老师一起在线学习,一切都进行得很好,语言没有看上去的复杂,但是最大的问题可能是词汇量的增加。 最初,我决定使用现有的解决方案。 但是他很快意识到它们不太适合我。

我必须自己为Telegram编写一个小型机器人,该机器人可以用来学习几乎所有语言。

已经有什么,为什么我不喜欢它。


首先,芬兰语的语言应用并不多。 我不想学习围绕静态内容构建的应用程序的语言-我有自己的兴趣,需求和期望,通常,这些兴趣,需求和期望与此类应用程序的作者所提供的不符。

因此,我决定考虑使用简单的程序来记忆词汇。 我尝试使用Lexilize抽认卡Quizlet ,当然还有Anki

我不会详细分析它们的所有优缺点,因为我相信他们对大多数人是熟悉的,其本质很简单,问题是相同的。 我只记得这些是基于闪存卡间隔重复的想法来记住某些概念(而不仅仅是外语单词)的程序。

我非常努力地处理了这些应用程序,但是很快发现在字典卡本身的实际创建上花费了大量时间。 我也不能使用现成的工具包,因为它们与我的任务不太相符-我不需要工具包中的任何文字,但我也不需要任何文字。

我还注意到,我主要使用Wiktionary之类的词典资源来创建卡片。 自然,如果您不断使用某些东西,那么您应该考虑该过程的自动化。

因此,任务是创建一个简单易用的应用程序,该应用程序将有助于创建字典卡。

我做了什么


立即预约-我不是程序员,在编码方面我没有什么可分享的。 这就是为什么我决定充分利用现成的解决方案,而不是重新发明轮子的原因。

为了不与前端打交道,我决定为Telegram编写一个bot,因为听说该平台最适合编写bot(如果我记错了,请在注释中写)。 我选择Python 3.7作为编程语言,并选择了称为aiogramTelegram机器人API包装器。

由于我之前没有写过类似的东西,所以我不得不阅读一些内容,进行实验,并在几天之内设法编写了一个机器人。

发生什么事了


事实证明,它是补充词汇量的有用工具(至少对我而言)。
主要功能:

  • 从wiktionary加载值
  • 间隔重复
  • 单词识别技能的形成(被动拥有)
  • 写作技巧(主动知识)
  • 处理被动和主动所有权错误
  • 可以添加任意值的功能(如果维基词典没有信息,通常是短语,罕见的复合词和新词)
  • 能够使用不同语言

接下来,我将展示该机器人的工作原理,但不会涉及芬兰语中的示例,而是展示该机器人如何使用英语。

如何运作


到目前为止,该机器人仅具有英文界面,单词的含义也为英文。 因此,它更适合那些已经具备一定英语水平的人;没有它,您将无法使用该机器人。

用户使用/ start命令启动漫游器并阅读其命令上的小帮助(也可以通过/ help命令随时获取)后,您需要选择他将学习的语言( / setlanguage )。 语言的名称必须用英语书写,因此,例如,当我学习芬兰语单词时,我写的是芬兰语而不是Suomi



选择语言后,您可以开始添加单词/ addwords 。 很简单-写一个单词,然后维基词典显示含义列表(英语)。 您可以选择一个值。 现在,您可以一次选择多个值并添加自己的值。



添加单词后,您可以开始学习词汇( / learning )并选择这次我想使用的单词数。 间隔重复算法将选择最“被遗忘”的单词(或刚添加的单词)并提供对其进行研究。 如果没有“忘记”的单词,您可以重复使用/ test命令学习到的单词。



对单词的研究始于被动技能的形成-单词的识别。 机器人显示单词和用户记住单词含义的任务。 如果用户确定自己记得单词,那么如果他不确定自己的知识,请按“ 我记得” - 显示含义

如果显示的单词含义不是用户正在考虑的含义,那么值得坦白地承认它- 不,我忘记了它 。 如果在语言中出现类似现象,您可以将其告知机器人- 是的,我知道



在您自信地识别单词后,该机器人将主动提出通过其含义来书写单词的技能。 提示用户回忆单词的拼写方式。



正如您在上面的屏幕截图中所看到的,我在单词中弄错了。 在这种情况下,机器人会提示您再次输入它,直到我停止犯错为止。 通常是第二次或第三次写下任何单词。 好吧,也许最复杂,最长的芬兰语可能需要更多的努力。

但是,即使在用户处理完所有单词之后,机器人也不会放弃他。 仍然可以解决错误! 在完成主周期后,机器人将根据检测到的错误轻松重复刚刚通过的过程。



事实证明,这至少对我来说是一个简单的应用程序,非常方便且有用。 它没有革命性的内容,但是我设法减少了添加单词的时间和精力。 但是,我不会牺牲培训的个性化,当您必须添加其他人的单词列表时,不可避免地会发生这种情况。

在我看来,对错误进行处理似乎对间隔重复也是非常有用的补充,因为它使您可以在一个会话中解决错误并立即修复单词。 这一点非常重要,因为时间上未纠正的错误可能会“持续存在”很长时间,甚至会发展为形式不正确的技能。

显然,可以完成更多任务。 您认为值得添加什么?

接下来是什么


所有这些系统,尽管具有明显的用处,但都有其自身的巨大缺点。 首先,它们与所研究单词的上下文缺乏联系在一起。

天真的想法吸引了许多人,例如每天学习10个单词,一个月内我会知道300个单词,而一年中则是三百零五个! las,不。 简单地将数十个单词和数百个单词“下载”到头部是行不通的。 在数百万年的进化中,大脑已经学会了如何有效清除垃圾:遗忘了所有未使用的东西。

因此,正确使用工具(例如我的机器人)是它们应有助于记住已经上下文化的词汇。

也就是说,该算法可能是这样的-首先,您取文本,试图理解它。 然后,您像我的机器人一样,在“回忆录”中学习最重要的新词汇。 然后,继续研究上下文中的单词-例如,撰写文本,讲述,进行对话。

只有这样,才有可能继续前进,而言语在您的大脑中不会显得多余。 正是由于缺乏上下文,其他人编制的词表工作不佳。 创建自己的单词集,其上下文对您很清楚。

但是,请勿创建“主题”词集(例如,在主题“颜色”或“宠物”上)。 最好将列表设置为“情境”,即用单词描述情况的列表(例如,“黑色”,“狗”,“树皮”,“猫”)。 自然地,即使您使用的是非常简单且很小的文本,也可以在使用文本时获得这些列表。 文本本身就是其中所有单词的上下文。

由此可见,可以在培训自动化中采取进一步的步骤。 您可以直接从文本中添加单词。 也就是说,用户只需添加文本,然后系统本身就确定应该从此处取用哪些单词(不一定所有单词,对于单词在文本中的重要性都有各种标准)。 您如何看待此功能? 这会有所帮助吗?

我差点忘了 机器人名称为@OppiWordsBot 。 如果您进行测试并将您的评论,建议和评论写给我,我将非常高兴。

更新
他在Telegram中创建了一个小组来交流有关该机器人的信息。 进来) https://t.me/OppiWords

更新
现在,您可以一次选择多个值并添加自己的值。

更新
新增了从频率词汇表中添加单词以学习该语言的功能。

更新
在github https://github.com/tezer/OppiWordsBot上填充代码

Source: https://habr.com/ru/post/zh-CN471196/


All Articles