Finds the lowest hanging fruit in your immersion automatically and adds it straight to your Anki deck. 1T Sentences are great to learn languages but very time-consuming, this tool makes Anki cards automatically based on your current progress in your target language.

Overview

T1-Sentence-Generator

Finds the lowest hanging fruit in your immersion automatically and adds it straight to your Anki deck.

image

A tool made for automatic sentence mining to save time for immersion that would be otherwise used up by making flashcards. It uses a text file, where the immersion text would be inserted, and reads it to find 1T sentence cards and uses web scraping to find definitions from online dictionaries. It uses AnkiConnect to automatically put the card into your deck when done. This tool is in the path with Refold, Mia, Migaku.

IMAGE ALT TEXT HERE (https://youtu.be/lAAWfZo-kBQ)

Installation

Video

IMAGE ALT TEXT HERE (https://youtu.be/SdCP8D0jFR4?t=150)

Instructions

  1. Install Java if you don't have it already
  2. Clone this repository and unzip the folder
  3. Set up the path for your .jar file
    • Open .bat file on Windows and change [PATH] to the jar's path on your PC. Example: C:\Users\name\folder\T1SentencesFinder.jar
    • Open .command file on Mac and change [PATH] to the jar's path on your Mac. Example /Users/name/folder/Testing/T1SentencesFinder.jar If you're unable to run the .command file try wrapping your path with "" (quotes).
  4. Run the .bat or .command file (you can put it the .bat/.command anywhere; ex: Desktop) (update that file if you change where the folder with .jar's path)
  5. If it's running without errors, it's time to fill the learnedWords.txt with words you know
    1. Export your filtered-only-known-words Anki deck as a .txt file (Select your deck and click File->Export and select the first .txt option with only your interested deck) Notice: You can also use MorphMan to export your words from your Anki Deck Database.
    2. Set it in Excel or Google Sheets
    3. Make sure to find the row where only the target language word is present (make it without caps or articles)
    4. Copy the list of words into learnedWords.txt with one word per line. Like this: alt text
  6. Set the config.txt, don't change the "true" and "false" lines but change the last 3rd and 2nd line. Third last line: name it to your Anki Deck and a :: if you want to add a subdeck. Second last line: name it to your note type.
    1. While you can download a sample note type designed for the app, you can use your own but make sure it has the following fields (with the exact names, without the commas and quotes): "Sentence", "Focus", "Definitions", "Source". Additionally, I would recommend for the absence of umlauts and accents in your deckname or note type, but if it is absolutely necessary, then use the java unicode for special characters.
    2. The last line of the config file is the dictionary that you want to use. The first character is either m or b for monolingual and bilingual and the last two characters are the language code: de for German or es for Spanish. alt text
  7. Install the AnkiConnect Anki addon. This addon is required to make automatic cards that will be added straight into your chosen deck after the 1T sentences were found.

Guide and Features

Steps to use the 1T Sentence Generator

  1. Grab text out of your immersion and copy into corpus.txt
  2. Run the .bat or .command file
  3. Open Anki and make sure AnkiConnect is activated.
  4. The app will ask you for a source of your text, whatever you type here will show up on the card to give you context where you gotten the generated 1T Sentence from.
  5. After adding, press [enter] and it should start loading.
  6. After loading, it should say that it has added words that belong in a 1T sentence and is not a known word of yours based on learnedWords.txt.
    • This will automatically add the word into a sentence card in your deck as well as update learnedWords.txt.
  7. It should also give a list of words that does not have a definition from your chosen dictionary but still has a 1T sentence. I recommend to choose "save to file" all the time.
  8. Now, some unknown words for you with good context (1T sentence) have been added to Anki, go review them! alt text

Extra Features

Source Dialogue

  • When you are in the source dialogue, you can:
    1. Add * at the beginning of your source to skip the loading of text. This will disable the addition of known words in the text not mentioned in learnedWords.txt.
    2. Add % at the beginning of your source to enable "Prelecture Plan". The initial characters will be removed and not added to the source.

Prelecture Plan

Say you want to read a book but your comprehension is below 75%, which is low and not recommended to read through. You can boost your comprehension of the book before reading by studying words that show up frequently in its pages. This feature gives you a list of of 1T, 2T, 3T, and 4T sentences that you will study in Anki before reading so that you are aware of the words. This would make the understanding of the text easier than if you didn't study the text's unknown words prior.

alt text Here, the UI will be in English and in place of ? there should be unicode arrows for you.

Supported Dictionaries and Languages

  • Monolingual German (DWDS.DE)

Please request your language and whether you want the monolingual or bilingual dictionary support, so that it can be added.

Resources

Here you can download a frequency list for various languages to fill your learnedWords.txt and the Note Type that I designed for this app.

Errors/Issues

Please report them in the issues tab. If you see ? in random places make sure you have UTF-8 encoding on all the .txt files as well as in Command Prompt or Terminal.

Future

  • Set up many dictionaries for many languages
  • Create an easier way to import your known words
You might also like...

Abstract machine for formal semantics of SIMP (Simple Imperative Language)

Abstract machine for formal semantics of SIMP (Simple Imperative Language)

SIMP-abstract-machine In 2020/21 I was a Teaching Assistant for the second year module 5CCS2PLD Programming Language Paradigms at King's College Londo

Oct 10, 2022

Workflow management system fully supporting low-code language Petriflow.

Netgrif Application Engine MySQL Create NETGRIF user: CREATE USER 'netgrif_nae'@'localhost' IDENTIFIED BY 'netgrif_nae'; GRANT ALL PRIVILEGES ON * . *

Dec 23, 2022

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Dec 28, 2022

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Mar 12, 2021

Care aims to create an IoT solution to hospitals interconnecting smart monitors to decrease the time a doctor takes to respond to an emergency.

Care aims to create an IoT solution to hospitals interconnecting smart monitors to decrease the time a doctor takes to respond to an emergency.

Care Description This project called Care, developed for the INFO1127 course - Software Engineering - aims to create an IoT solution to hospitals inte

Oct 4, 2022

Java time series machine learning tools in a Weka compatible toolkit

UEA Time Series Classification A Weka-compatible Java toolbox for time series classification, clustering and transformation. For the python sklearn-co

Nov 7, 2022

Java Statistical Analysis Tool, a Java library for Machine Learning

Java Statistical Analysis Tool JSAT is a library for quickly getting started with Machine Learning problems. It is developed in my free time, and made

Dec 20, 2022

DFA来过滤敏感词工具。--- The sensitive word tool for java with DFA.

sensitive-word-plus sensitive-word-plus 基于 DFA 算法实现的高性能敏感词工具。 站在巨人肩膀上,本项目是根据sensitive-word 做的升级 创作目的 基于sensitive-word-plus 实现返回敏感词类型 实现一款好用敏感词工具。 基于 D

Sep 22, 2022

A tool to assemble Magic: The Gathering proxies from a set of template images

Proximity A tool to assemble Magic: The Gathering proxies from a set of template images. To get started, check out the wiki. Building Proximity can be

Oct 17, 2022
Owner
Amiothenes
Amiothenes
Welcome 🙌! This repository encourages daily contributions from anyone intending to learn Data Structures and Algorithms every day

?? DSA-Community Welcome ?? ! This repository encourages daily contributions from anyone intending to learn Data Structures and Algorithms consistentl

Bishal Mohari 4 Sep 9, 2022
mBERT is a mutation testing tool that uses a pre-trained language model (CodeBERT) to generate mutants.

mBERT is a mutation testing tool that uses a pre-trained language model (CodeBERT) to generate mutants.

null 7 Oct 22, 2022
A group of neural-network libraries for functional and mainstream languages

Synapses A group of neural-network libraries for functional and mainstream languages! Choose a programming language: Clojure C# Elixir F# Gleam Java J

Dimos Michailidis 65 Nov 9, 2022
Survey for object-oriented languages

Project architect: baudoliver7 What does it do ? It helps to select OO languages for a survey. Pre-requisites JDK 1.8 or + Maven 3.1.0 or + How does i

Olivier B. OURA 3 Dec 15, 2021
MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

null 900 Jan 2, 2023
Easy to use, very low overhead, Java APM

Glowroot Requirements Java 8+ Quick start Download and unzip glowroot-0.14.0-beta.2-dist.zip Add -javaagent:path/to/glowroot.jar to your application's

null 1.1k Dec 14, 2022
A Slimefun4 addon that adds a new storage solution for mass and organised storage without harsh performance.

Networks is a Slimefun4 addon that brings a simple yet powerful item storage and movement network that works along side cargo. Network Grid / Crafting

null 17 Jan 7, 2023
👄 The most accurate natural language detection library for Java and the JVM, suitable for long and short text alike

Quick Info this library tries to solve language detection of very short words and phrases, even shorter than tweets makes use of both statistical and

Peter M. Stahl 532 Dec 28, 2022
👨‍🏫ITMO University first 4 labs. They are about object oriented programming and Java language

Java-Programming-1st-semester 1st lab - math operations, formatted output. 2nd lab - object oriented programming. 3rd lab - SOLID and STUPID principle

Andrey Vasiliev 4 Dec 1, 2022
Data Structures and Algorithms (DSA) - Java Language Using Integrated Development Environments NetBeans

Data Structures and Algorithms (DSA) Course Code : CSC211 Credit Hours : 4 Language : JAVA Integrated development environments : NETBEANS Topic Covere

Ossama Mehmood 샘 2 Oct 1, 2022