<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Arvid Kahl on Medium]]></title>
        <description><![CDATA[Stories by Arvid Kahl on Medium]]></description>
        <link>https://medium.com/@arvid_18675?source=rss-549bfbf1f9a8------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*iyltu6IFiDCqLuGH3cE18Q.jpeg</url>
            <title>Stories by Arvid Kahl on Medium</title>
            <link>https://medium.com/@arvid_18675?source=rss-549bfbf1f9a8------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 07:42:28 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@arvid_18675/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[The FeedbackPandaCloud — VIPKID Template Sharing Made Easy]]></title>
            <link>https://medium.com/feedbackpanda/the-feedbackpandacloud-vipkid-template-sharing-made-easy-6db5935f127d?source=rss-549bfbf1f9a8------2</link>
            <guid isPermaLink="false">https://medium.com/p/6db5935f127d</guid>
            <category><![CDATA[online-teaching]]></category>
            <category><![CDATA[teaching-english]]></category>
            <category><![CDATA[esl]]></category>
            <category><![CDATA[vipkid]]></category>
            <category><![CDATA[template]]></category>
            <dc:creator><![CDATA[Arvid Kahl]]></dc:creator>
            <pubDate>Mon, 17 Jul 2017 11:42:49 GMT</pubDate>
            <atom:updated>2017-07-17T11:42:49.415Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TfQH2jAETip1cVsa29yUug.png" /></figure><p>When we started building <a href="https://www.feedbackpanda.com/">FeedbackPanda</a> a couple of months ago, its purpose was to speed up creating student feedback for individual teachers. Every teacher would have their templates, courses and students, and each template would have to be written by each teacher.</p><p>But that’s not how the VIPKID ESL teacher community works. Any helpful piece of information is shared. In Facebook groups, forums and blogs, teachers circulate instructional videos and resources. When it came to templates, the latest means of collaboration was a gigantic shared Google Sheet with everyone’s templates.</p><p>Well, that time is over.</p><p>At FeedbackPanda, we just released the <strong>FeedbackPandaCloud</strong>. It’s a chance for teachers to share their templates with all other FeedbackPanda users. At the same time, every teacher can browse all shared templates for inspiration and to import them into their own database.</p><h3>The FeedbackPandaCloud Browser</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgfycat.com%2Fifr%2FDentalCanineDungenesscrab&amp;url=https%3A%2F%2Fgfycat.com%2Fgifs%2Fdetail%2FDentalCanineDungenesscrab&amp;image=https%3A%2F%2Fthumbs.gfycat.com%2FDentalCanineDungenesscrab-size_restricted.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=gfycat" width="1010" height="860" frameborder="0" scrolling="no"><a href="https://medium.com/media/3c304ad7670feab02786ac3bced15392/href">https://medium.com/media/3c304ad7670feab02786ac3bced15392/href</a></iframe><p>If you can say one thing about ESL teachers, it’s that they’re both helpful and curious. With the FeedbackPandaCloud Browser, teachers can read through every Template from every Course that was shared on the cloud.</p><p>The Course and Template lists can be searched for specific words. Also, the “show only popular Templates” option will only show Templates with one or more Imports.</p><h3>The FeedbackPandaCloud Import Template Screen</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgfycat.com%2Fifr%2FSelfishUnsightlyGerenuk&amp;url=https%3A%2F%2Fgfycat.com%2Fgifs%2Fdetail%2FSelfishUnsightlyGerenuk&amp;image=https%3A%2F%2Fthumbs.gfycat.com%2FSelfishUnsightlyGerenuk-size_restricted.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=gfycat" width="1010" height="860" frameborder="0" scrolling="no"><a href="https://medium.com/media/c7c06e8d16c24ce8b9c9a2131e566c87/href">https://medium.com/media/c7c06e8d16c24ce8b9c9a2131e566c87/href</a></iframe><p>When a teacher wants to import a Template, the application will automatically check if the Course for it already exists. If not, it can be imported prior to importing the Template.</p><p>Within the Template, the text can be changed and adjusted to the teacher’s preferences before importing.</p><p>If a Template gets imported from the Create Feedback window, it will automatically be used for that piece of Feedback!</p><h3>Sharing Templates on the FeedbackPandaCloud</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgfycat.com%2Fifr%2FQuerulousFlickeringDrongo&amp;url=https%3A%2F%2Fgfycat.com%2Fgifs%2Fdetail%2FQuerulousFlickeringDrongo&amp;image=https%3A%2F%2Fthumbs.gfycat.com%2FQuerulousFlickeringDrongo-size_restricted.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=gfycat" width="1046" height="708" frameborder="0" scrolling="no"><a href="https://medium.com/media/338eea02db6d58cecb63a4ce4393452f/href">https://medium.com/media/338eea02db6d58cecb63a4ce4393452f/href</a></iframe><p>We provide a Settings view, reached either from inside the FeedbackPandaCloud Browser or from the User Avatar dropdown on the Dashboard. Here, a display name for the Templates can be set, as well as sharing all Templates by default.</p><p>A big green button allows the teachers to share all of their Templates to the FeedbackPandaCloud immediately.</p><h3>Sharing Individual Templates</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgfycat.com%2Fifr%2FFarBleakIguanodon&amp;url=https%3A%2F%2Fgfycat.com%2Fgifs%2Fdetail%2FFarBleakIguanodon&amp;image=https%3A%2F%2Fthumbs.gfycat.com%2FFarBleakIguanodon-size_restricted.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=gfycat" width="1046" height="708" frameborder="0" scrolling="no"><a href="https://medium.com/media/63453946d4744d18989de22ab438fdf1/href">https://medium.com/media/63453946d4744d18989de22ab438fdf1/href</a></iframe><p>In the Create and Edit views for Templates, a new checkbox can be found in the bottom left corner. This option allows teachers to share or unshare individual Templates. This enables everyone to only share the Templates they feel should be public, while having complete control over their private Templates.</p><p>These are the features of the FeedbackPandaCloud — for now! We will be improving the interface and functionality to make it more useable and saving our teachers even more time.</p><p>If you have any ideas or suggestions on how to improve the FeedbackPanda app and the FeedbackPandaCloud platform, please reach out to us at <a href="/service/mailto:feedback@feedbackpanda.com">feedback@feedbackpanda.com</a>. To receive updates and tips, please follow us on Facebook at <a href="https://www.facebook.com/feedbackpanda/">https://www.facebook.com/feedbackpanda/</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6db5935f127d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/feedbackpanda/the-feedbackpandacloud-vipkid-template-sharing-made-easy-6db5935f127d">The FeedbackPandaCloud — VIPKID Template Sharing Made Easy</a> was originally published in <a href="https://medium.com/feedbackpanda">FeedbackPanda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Changing “his” to “her”: Teaching Computers English]]></title>
            <link>https://medium.com/feedbackpanda/changing-her-to-his-teaching-computers-english-76e265c501c8?source=rss-549bfbf1f9a8------2</link>
            <guid isPermaLink="false">https://medium.com/p/76e265c501c8</guid>
            <category><![CDATA[teaching]]></category>
            <category><![CDATA[esl]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[nlp]]></category>
            <dc:creator><![CDATA[Arvid Kahl]]></dc:creator>
            <pubDate>Sat, 15 Jul 2017 10:42:50 GMT</pubDate>
            <atom:updated>2017-12-30T16:13:34.484Z</atom:updated>
            <content:encoded><![CDATA[<p>If you were to convert the sentence “She did a great job” to a male version, you’d have a pretty easy time coming up with “He did a great job”. Converting “Her vocabulary is very good!” would probably be easy too, just like “I gave her five stars as a reward” would come naturally. It’s remarkable that a computer would excel at the first sentence while failing horribly at the latter two. In this post, I will explain why language processing is surprisingly complicated for computers and how I solved this problem for the <a href="https://www.feedbackpanda.com/">FeedbackPanda platform</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1tBk8XGNhhrElypr92aP1Q.png" /></figure><p>At FeedbackPanda, we offer our users who are teaching English as a second language a system to quickly create student feedback for the lessons they’re teaching. The core feature is the ability to create templates to generate lesson-specific feedback. These templates come in two versions, one for male students and one for female students. To make it faster for our teachers to create such templates, I wanted to build a system to automatically “translate” between the male and the female version. So I set out to “just build it”.</p><h3>The naive approach</h3><p>Initially, I thought about how a human would do it. Between “he” and “she”, it’s a simple substitution. That was very easily programmed and worked well. Encouraged by this, I built a list of text substitutions. When I reached “him” and “his”, I noticed that both words would translate into “her”. My enthusiasm crumbled at that point: while this would work for male-to-female translations, it would fail for female-to-male. How would I distinguish the possessive “her” as in “she read her book” from the object pronoun “her” as in “I gave her a book”? The program certainly couldn’t.</p><h3>Why machines don’t understand</h3><p>The computer only sees letters, not meaning in text. We humans grasp meaning so easily in common-day language, but for a machine, this is one of the most complicated endeavours. A program can manipulate millions of letters in a text within milliseconds, but it has no concept of context. This is why automated translation systems still struggle, even though computing power and storage space have gone through the roof within the last decades. But something happened that allowed for progress.</p><h3>Enter Machine Learning: Teaching the Computer English</h3><p>Have you ever tried translating a piece of Chinese text into English using a service like Google Translate? It usually translates into incomprehensible gibberish or something barely understandable. But if you try translating French to English, it’s usually pretty good. Why is that? One would assume it’s because French and English are very similar, while Chinese is conceptually and grammatically very different from English. Although, that could be true, when looking at computers, it barely matters.</p><p>What matters, is called “the corpus”. In a nutshell, it’s the essential ingredient in linguistic machine learning, usually called <a href="https://en.wikipedia.org/wiki/Natural_language_processing">Natural Language Processing</a>. It works like this:</p><p>1. You collect as many texts with identical content in both languages.<br> 2. You feed them into a machine learning system.<br> 3. The machine does hours, sometimes days worth of statistical calculations and arrives at a “model”, which it uses to translate.</p><p>Now you can feed it text in one language and it will provide a translation!</p><p>But what influences this quality? There is a lot of math to machine learning, and I won’t go there. The most important factor in producing a good model is the amount of text that is fed into the system. And that is the so called “<a href="https://en.wikipedia.org/wiki/Text_corpus">corpus</a>”.</p><p>The reason why English to French translation works is because there is a lot of “corpus”.The <a href="https://europa.eu/european-union/documents-publications/official-documents_en">European Union publishes every single law</a>, all public documents and journal in 24 different languages — openly and for free. They have to, so each member state has the same clarity when it comes to interpretation. This means, that there is a gigantic corpus of text for 24 languages, which any machine learning system can ingest to create a translation model. There is no such treasure trove for English/Chinese documents. In general, it is more likely for a text to be published in English and in French than in both English and Chinese. This explains why it is so easy to produce a usable model for English-to-French, but so hard to build something for Chinese.</p><h3>But where to find the corpus?</h3><p>After reading up on all this, I researched some more into existing tools that would help me build something for male-to-female and vice-versa. I found that if I thought at “male english” and “female english” as distinct languages, it would be just another language-to-language translation. The tools I found all required a corpus of two languages, so I needed to find some data to generate these text collections from.</p><p>And I found them within our own system. Our users had already generated templates, both male and female, with only the pronouns different. So with only a couple of hundred different texts, I built the first prototype using a <a href="https://en.wikipedia.org/wiki/Statistical_machine_translation">Statistical Machine Translation</a> (SMT) system called <a href="http://www.statmt.org/moses">moses</a>. The results were very encouraging! It would even translate “her” to “him” and to “his” correctly — some of the time. To find out why, I had to look into what Statistical Machine Translation actually does.</p><h3>Statistical Machine Translation — the Basics</h3><p>A SMT system look at how often a certain source language term (which can be a word or a group of words) gets translated into a certain target language term. After looking at all these replacements, it calculated a probability of how likely it is for a term to be translated into another. For single words, it still produces a lot of errors, since it will just choose the most likely translation — every time. So all “her” would be translated into “his”, if that is the most common translation for that corpus.</p><h4>n-grams? What?</h4><p>So I looked into giving the system more context. A feature of machine translation systems is that they are able to look at a thing called n-grams. What’s an <a href="https://en.wikipedia.org/wiki/N-gram">n-gram</a>? It’s pretty much a group of words, with n being the number of words per group! Easiest shown by example:</p><p>Sentence: “She took her lunch to school” → “He took his lunch to school”</p><p>n-grams of 3 (also called trigrams):</p><p>— “She” “took” “her” → “He” “took” “his”<br> — “took” “her” “lunch” → “took” “his” “lunch”<br> — “her” “lunch” “to” → “his” “lunch” “to”<br> — “lunch” “to” “school” → “lunch” “to” “school”</p><p>Woah, that is much more data to work with! And the SMT system has a lot more context, since it does not only see what “her” gets translated into, it also gets to see the surrounding words, which are likely to appear in other sentences that the system will need to translate later. Thus, the system assigns a high probability to “her” → “his” translations when “her” is preceded by “took” or followed by “lunch”.</p><p>And this is exactly how humans do it. We contextualize and have rules about the semantical structure of our sentences and word groups, from which we infer the correct substitutions. Our brains have built such a large and quickly accessible ruleset that we can easily translate this without even thinking. The computer is not so lucky, its memory is significantly smaller than that of a human — and it needs to check all of it’s rules for every sentence it translates. And what we learn in many years of speaking a language, a computer has to learn in a much short time. With all the computations needed to calculate the probabilities, it can easily take multiple hours to generate a model for this kind of translation.</p><h4>Unexpected side-effects</h4><p>I set out to build a system translating words like “her”, “him”, “she” or “herself”. What happened was that I got a system that would learn more than I expected, in a good way.</p><p>It learned to translate “lady” to “gentleman”, since they appeared in a few templates. So gender-specific substitutions are also learned, not just pronouns.</p><p>It learned <em>not</em> to translate words in quotation marks. A sentence like “He learned the words ‘he’, ‘his’ and ‘him’ today!” would surprisingly translate into “She learned the words ‘he’, ‘his’ and ‘him’ today!”, leaving the quoted words intact. This is where the probability approach is visible, since “his” has a much higher probability to be translated into “her” than the quoted “‘his’”. Amazing!</p><h3>Looking forward</h3><p>At this point, I constantly update the system with all of FeedbackPanda user’s templates to increase the corpus size. With over 20000 templates in the database, the system is getting better and better at translating between male and female and the other way around. It’s growing quite large though. It takes about 8 hours to train the model for both translations (so it’s 4 hours each way) and the resulting system needs over 5 gigabytes of memory to just load the model — that would equal 2.5 million pages of printed translation rules.</p><p>And it’s still not perfect. Just like with Google Translate, the FeedbackPanda system will produce wrong translations and translate things in a way that you wouldn’t necessarily translate them yourself. But it will improve with every template added to the FeedbackPanda platform.</p><p>I’ll be tweaking the system in the future, and I need your input — provided you’re a user of the FeedbackPanda platform. Please reach out to me at <a href="/service/mailto:arvid@feedbackpanda.com">arvid@feedbackpanda.com</a> if you get a wrong translation. Please provide both your original version and the translation from FeedbackPanda. That will help me quite a bit!</p><p>If you’re just interested in a SMT system that translates male texts to female and back, feel free to reach out to me as well.</p><p>If you’re a teacher for <a href="https://t.vipkid.com.cn/">VIPKID</a> or similar Online Teaching Platforms, give <a href="https://www.feedbackpanda.com/">FeedbackPanda</a> a try — you now know it’s powered by science.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=76e265c501c8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/feedbackpanda/changing-her-to-his-teaching-computers-english-76e265c501c8">Changing “his” to “her”: Teaching Computers English</a> was originally published in <a href="https://medium.com/feedbackpanda">FeedbackPanda</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>