Houhou 1.2 - Dictionary and SRS application for Windows

:warning: This is a third-party script/app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

New version 1.2 out now!



(Ugly logo, check.)

Hi people!
As requested by some of you, I’m creating this topic for my dictionary and SRS tool for Windows, Houhou. I’m working on this project on my free time, when I’m in the mood. I’m not trying to become a heavy player in Japanese learning software or anything. I do use Houhou every day though. I’m just posting this here for those of you who may find it convenient, like me.


What is Houhou?

Houhou is an offline dictionary and SRS application for Windows I designed for myself. I found that it was a pain to have separate applications to look up and review words and kanji, that kanji lookup was unnecessarily slow, and that WaniKani’s review system is better than any other SRS out there. So I tried to create the ideal tool for looking up and memorizing kanji and vocabulary.

The kanji and word dictionaries are built on roughly the same resources used by jisho.org.

Please see post #2 for screenshots.

Main features

  • Kanji lookup by meaning, reading, radicals, or by text copy;
  • Unique feature: The kanji lookup by radicals uses customizable radical names. Look up an unknown kanji in 5 seconds by typing the name of its radicals;
  • Kanji pages showing all meanings, readings, vocab and some additional info;
  • Vocab (words) lookup by reading and/or meaning, with common vocab highlighting;
  • Customizable SRS system with WaniKani-like reviews: look up a kanji/word, click the “Add to SRS” button, and it will start coming up in reviews;
  • “SRS Tray” shows optional notifications when you have reviews;
  • Import your items from CSV files or from WaniKani;
  • Export your items to CSV;
  • Bugs!

Changelog


Version 1.2 (2015-04-05):
  • A new “quick add” button allows you to add vocab to your list in one click;
  • Added audio support for vocabulary entries;
  • Improved the vocabulary lists:
    • Vocabulary is now displayed with furigana over the kanji reading when applicable;
    • Variants of an entry (alternative kanji/kana readings) are now displayed and indicate when the entry itself is a variant. Click the variants to switch the entry to the clicked variant;
    • Variants are no longer considered common (green background);
    • The kanji writing is toned down in opacity when the word is usually read in kana;
    • Entries with too many (configurable) different meanings will now automatically collapse (click a button to expand);
    • Added a frequency hint taken from an analysis run on a large number of books (tells you how common the word is);
    • Added a frequency rank taken from an analysis of Wikipedia articles;
    • Added a JLPT level information where applicable;
    • Added a WaniKani level information where applicable;
  • Improved the kanji details page:
    • Added kanji strokes diagram;
    • Kanji frequency rank is now based on an analysis run on a large number of books, is no longer limited to the 2500 most used;
    • Improved kanji grade info (now says if jouyou or only jinmeiyou and the teaching grade when learned in elementary school);
    • Added JLPT level when applicable;
    • Added WaniKani level when applicable (with a direct link to the kanji page).
  • Kanji are now displayed using the Noto font in vocabulary lists, on the kanji details page, and in the kanji search result list;
  • You can now reschedule or delay the next review date of batches of SRS entries, on the SRS item browsing page;
  • The “Accepted Meanings” and “Accepted Readings” fields of SRS items are no longer mandatory: you still have to fill one or the other, but not necessarily both. When one of these fields is empty, the SRS module will not ask the matching question in reviews;
  • Added a setting that allows you to define the behavior of the Houhou tray when closing the main window (will by default issue a tooltip);
  • Added a setting to define the number of vocab entries per page;
  • Added a setting to define the number of kanji search results per page;
  • Added a setting to show/hide nanori (name) readings;
  • Fixed the new SRS item window title being “SRS item edition”;
  • Added a clearer message when trying to import items from a non-subscribed WaniKani account;
  • Upon crashing, Houhou can now open the log, so you can easily save it and send it to me;
  • Settings are hopefully no longer reset after updating to a newer version;
  • Added proper credits on the bottom of the main tab.

Version 1.1.2 (2015-02-05):
  • Added an export feature available from the SRS item browsing view;
  • Added the missing WaniKani import feature;
  • The next review date of any item can now be modified on its edition window;
  • Added an option to auto-skip to the next question when entering a correct answer during reviews;
  • Vocab with an outdated reading is shown on a semi-transparent gray background;
  • The 60 character limitation on the kanji reading field for vocab SRS items has been lifted;
  • Typing "" in a kana field will now input a “ー”;
  • Fixed a crash occurring when you have SRS items above the maximal SRS level;
  • Fixed a crash occurring for some users when using the “Copy” button in vocab lists;
  • Fixed SRS item modification during reviews adding spaces between the accepted meanings;
  • Fixed a kanji selection bug when navigating by clicking character from the vocab lists.

Version 1.1.1 (2015-01-10):
  • Handled parentheses in meanings during reviews. For example, an item accepting “master (of a house)” will also accept “master”;
  • Changed the tone of the colors of the answer bar after validating your answers during reviews (should be more colorblind-friendly, hopefully);
  • Added an option to enable “ignore answer” shortcuts during reviews;
  • Changed the way the progress of an item that has already been added to your SRS list is displayed: the progress bar now shows the progress of the item through the SRS levels, instead of the right answer ratio;
  • Typing “zz” in a kana field now inputs a small tsu (っ);
  • Typing “n’” in a kana field now inputs a ん;
  • Typing ca/ci/cu/ce/co in a kana field now inputs か/き/く/け/こ;
  • Added checkboxes on the SRS browsing page filters to allow for optional exact expression match;
  • Reworked the SRS browsing list to perform (a lot) better, and allow for better selection controls;
  • Fixed batch edit on SRS items that wouldn’t work with too many items;
  • Clicking on a reading on a kanji page now filters its vocab by reading.

Version 1.1 (2014-12-24):
  • Added a CSV import feature to add SRS items in batch or from other sources;
  • Added an option in the installer and in the settings page to change your user directory path.

Version 1.0.1 (2014-12-04):

  • Fixed a missing kana shortcut for kana input fields;
  • Fixed a crash when starting the application on Windows 8.

Upcoming features

Up next is reverse SRS, I guess. Unless I get carried away.

Known bugs

  • A crash occurs under specific conditions when using Google’s Japanese IME on the reading filter field of the vocab tab.
  • Sometimes, tooltips of the tray app appear on the top-left of the screen.
  • Adding a kanji and then navigating to another one and back still shows the “Add” button.
Please report bugs! I need more of them!

Want to try?


_

Having trouble using Houhou? Questions? Bug reports? Feature requests? Any kind of feedback? Post here or mail me at hello@houhou-srs.com.

Doublevil, 以上。

26 Likes

Some 'shots


The dictionary part looks like this. This is a kanji page. Words using the selected kanji appear and you can navigate to other kanji through the vocab list.


This is the SRS Dashboard. Is this familiar? The SRS works pretty much like WaniKani’s, except the lessons module is replaced by you adding your own words and kanji.


A review session. Is this even more familiar? The answer has been confirmed, making the custom note and edit buttons appear.

2 Likes

Snatched, installed. I’ll see how it goes.  Two questions though, 
1) Do you know how well it will run under wine/mono under linux?  I tend to switch back and forth a lot.
2) Do you have any plans for syncing the srs information between installs? Like dropbox, pointing to a shared directory, anything, etc. 

Otherwise, my five minute browse around the UI looks positive.

I’ll try taking a look at how the database is created and used for this this weekend or something.

Can I ask what you are using to do the dictionary lookups? I am primarily a Java developer and have been wanting to create myself my own system much like yours, but haven’t been able to find a Java API to let me query resources like jisho.org or WWWJDIC. I have done some preliminary work on trying to extract the libraries from the WWWJDIC Android (Java) app, but if there are finished/complete Java APIs already in existence, then I would love to leverage those instead. Since your application is strictly for Windows, I can only imagine you are using a Windows-specific language (or perhaps a variant of C, which is still not useful to me unless I can somehow query a C-based API from a Java-based application… this I don’t know).

If it’s slow while searching for vocab words containing kanji, there are some things you could do pretty easily to speed it up. The EDICT has what, 170K entries? (I presume you’re using the XML kanji and vocab lists from JDICT?) What about constructing an indexing system and trading computation time for memory usage? Just have every kanji have a list of words using it and fill those in when you first parse the dictionary. It might take longer to build whatever you’re using for a vocab dictionary but it should help with search times. In addition, you could create a vocab hash table to check for exact matches in no time flat.

I’m sorry I’m geeking out because I was very recently building a query engine for generating arbitrary Anki decks from the EDICT XML files.

@mousouchop: You can download the entire JDICT in a giant XML file for easy parsing. I used C# which has handy built-in functions for XML parsing. Before I found that I was gonna do something ridiculous like crawl and scrape Jisho.

This is amazing! You must have quite a bit of free time…

@SparkGap Yeah, I considered the JDICT option… but honestly, I don’t have that much experience with parsing XML (other than a couple exercises in my undergrad), so I gave up that idea. I thought about parsing the file once and loading into a DB, but that also would’ve required a decent knowledge of XML that I simply don’t have.

WWWJDIC has an API that spits out raw data.
Ex: http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?1ZKU%C0%E8%C0%B8
Full API info here: http://www.csse.monash.edu.au/~jwb/wwwjdicinf.html#backdoor_tag
However, transcribing this data to an intelligible object in a program becomes the next hurtle; hence why I started trying to extract this logic from the WWWJDIC app, which already parses the raw API data into a comprehensive Java object.

Maybe I should look a little more into XML parsing though… hmmmm. Any suggested resources?

acalewin said... Snatched, installed. I'll see how it goes.  Two questions though, 
1) Do you know how well it will run under wine/mono under linux?  I tend to switch back and forth a lot.
2) Do you have any plans for syncing the srs information between installs? Like dropbox, pointing to a shared directory, anything, etc. 

Otherwise, my five minute browse around the UI looks positive.
Awesome!
1) It won't run with mono because it's WPF. Sorry. I really like those Microsoft technologies. But I'd so much like to have the same app on my phone. I don't know if that will ever happen.
2) This is actually what I called "cloud" feature in my initial post. Too much work at the moment but I'm considering it.

mousouchop said... Can I ask what you are using to do the dictionary lookups? I am primarily a Java developer and have been wanting to create myself my own system much like yours, but haven't been able to find a Java API to let me query resources like jisho.org or WWWJDIC. I have done some preliminary work on trying to extract the libraries from the WWWJDIC Android (Java) app, but if there are finished/complete Java APIs already in existence, then I would love to leverage those instead. Since your application is strictly for Windows, I can only imagine you are using a Windows-specific language (or perhaps a variant of C, which is still not useful to me unless I can somehow query a C-based API from a Java-based application... this I don't know).
It's C# .net, yeah, Microsoft technologies. For the database, I'm using a custom SQLite database built from kanji and word dictionary files. You'll find more info on the GitHub page linked on the website if you want. SQLite allows me to perform offline search, which is a major plus, in my opinion.

snackpacks said... I'll try taking a look at how the database is created and used for this this weekend or something.
Go ahead, it's open source. :)

SparkGap said... If it's slow while searching for vocab words containing kanji, there are some things you could do pretty easily to speed it up.
 Thank you for your tips. Fortunately, I already have strong leads on how to gain performance on these requests. I'm gonna trade some link tables for multi-value fields... or something. I'm not sure I remember what it was but I wrote a plan for that a few months ago.

@mousouchop

If you’re building a dictionary, don’t spend time making web requests to grab info. That will take days of letting it grab data. And from what I can see, their query system is strange. Just look up a library for parsing XML in Java and some example code. In C# the code basically lets you select groups of nodes (<entry> nodes, for example) and then you can browse through them like folders.

If you do want to write a query system, you’re on your own, but can probably find someone else who has written something for it. The benefit of a dictionary file is of course that you take up more space but you don’t have to wait for the page to load or even be on the internet.

I’m a big fan, and as I wind down with WK over the next month or so, I’ll probably be switching over to this one full time.

Two feature requests (that I’d reward with a generous contribution to your “donate” link!):
- Mass item import from CSV
- Ability to direct Houhou to a Dropbox folder to look for its database, to automatically sync between multiple computers

BreadstickNinja said... I'm a big fan, and as I wind down with WK over the next month or so, I'll probably be switching over to this one full time.

Two feature requests (that I'd reward with a generous contribution to your "donate" link!):
- Mass item import from CSV
- Ability to direct Houhou to a Dropbox folder to look for its database, to automatically sync between multiple computers
I'm working on the first one. Let's randomly say I give myself 7 days for that feature.

As for the second one, it's actually a very good and simple idea... I assume that is what acalewin talked about earlier, but I didn't quite understand. I could just add a configurable field specifying where Houhou should look for its config files. Sounds wonderful! I'm definitely adding this for the next version too!

excitement intensifies

Awesome, now that I’m home and have had a chance to look, it’s really well made. There are a couple of features that might be useful to add. Here are my thoughts after using it for a bit. If I missed something and suggested a feature that’s already there, slap me with a piece of roadkill.

1. Easy multi-selection in the SRS items page (besides select all). Like shift clicking to select things in a range.
2. The SRS item addition page’s title says “SRS item edition”.
3. There should be a “quick-add” button to add kanji or vocab without bringing up the addition screen. I’m not going to modify them most of the time.
4. Clicking on a reading in the details section on the kanji page should input that into the reading filter automatically. Again, I don’t really foresee too many times I’d copy the reading from the box without immediately pasting it to search (if I didn’t want to swap my IME mode).
5. Closing the kanji page and pasting in a new kanji is a two-step process for searching for kanji that could be cut to one if there was another search bar above that button.
6. Feature to delay vocab reviews containing a kanji until the kanji is at a certain level?
6.1. The SRS tab should have a “containing kanji” filter box so we can easily turn kanji-relevant vocab on or off if that isn’t an option.

I can’t think of any more at the moment. I may edit this or post more thoughts as I have them.

Wow, this is awesome! I just downloaded it and it looks like it’ll work great. I can’t wait to try it out.

Ah, here’s one.

When I add kanji through the kanji panel, I can click to another one and back and I can add it again, creating duplicates.

This is why I love the internet.
I love what this already is, I love the ideas for what it might be being thrown around, and I love that it looks like that might happen.
You may not seek heavy-playerhood Doublevil, but you may just get donated at somewhat heavily. Cookies may be affordable.
I’m not sure if the strategy should be to fund you cake and coffee to energise your production (and distract you from anything else important in your life, like study, hygiene, or love), or to later reward you with congratulatory beer or wine for a job well done.

I’m not letting myself look at this in detail until post-JlPT, because I just don’t need to be more distracted. But, your comment that WK is the best damn SRS out there, I agree with deeply. Cooori is sorta eh… I love all the Anki can do, but I do not love what it is to use or how it looks. If there was just something that did what I wanted in the first place than Anki’s flexibility wouldn’t be so important in the first place… (And bulk import means one could compose and export Rikai-sama Auto-Import decks from Anki to Houhou…mmm.)

Not sure if it’s a feature yet, but enabling the playing of vocabulary pronunciation files, such as Rikai-sama extracts from JDICT, robotic though they are, would be sweet. Perhaps a targeted “grab” feature to pull the audio for exactly what you want, as sometimes Rikai-sama being locked on the first listed definition is prohibitive (if anyone can tell me a way around that, appreciated).

I get a message that the executable file is corrupted.  So I can’t get the program after download.

Is there a problem, something hacked?

Okay, here’s a big one for convenience:

Remove the (example) parenthetic words from accepted answers.

Example, 党: Default definition grabbed is: “party (political)” but you’ll get it wrong if you just say “party”. I don’t want to have to edit all of those that will be flooding the definitions manually, so the matcher should stop when it sees a ‘(’ character.

Wow, I love all the Wanikani integration options in the settings.  So far this program is looking very promising.  I can’t wait to see more.