Giter Site home page Giter Site logo

sasafrass / straattaal Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 0.0 2.62 MB

Use an RNN to generate Dutch slang and interpret your newly created words!

License: GNU General Public License v2.0

Shell 0.34% Python 80.11% HTML 9.67% Mako 0.63% Jupyter Notebook 8.21% CSS 0.30% Dockerfile 0.74%

straattaal's People

Contributors

annaproxy avatar raoulg avatar rgrouls avatar sasafrass avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

straattaal's Issues

Editing a database entry for a word

Allow users to edit database entries for their word: changing the meaning, changing the star, changing the groups to which it is shared, removing an entry. Linked to: #81

Add Word Meaning Functionality

Implement the word meaning functionality. Allow people to generate a word, add their interpretation of the meaning of that word, and persist this to database and make it available on their profile.

Share words with group

Be able to select which words you want to share with a group, and subsequently be able to actually share those words with the group.

How to evaluate models?

More of a philosophical question.

  • We don't want models to have perfect training accuracy, few novel words are generated
  • We don't want models to have training accuracy that is too low, implausible words are generated (bvbvmcnv)

Any papers/blog posts on this are welcome!

Implement Vocabulary Object.

Move vocabulary functionality into one coherent vocabulary class, e.g. char_to_idx, idx_to_char, and sampling from the vocabulary.

Rewrite /api/generate_slang route to use internal (new) functionality.

Rewrite /api/generate_slang route to use the internal functionality rather than defining functionality itself. In this way, any update to how we generate words in the internal functionality should immediately take effect here as well, dispensing with the need to update this manually == fewer bugs.

Translation

Generated words are "in Dutch" and are probably most fun for Dutch speakers.
As a (parody of a) user, I am confused: should I be entering a definition in English?
In the future, we could provide the app in English/Dutch, depending on the language of the current model / user preference.

Support batch size > 1

Current code (and my PR) can only use batch size = 1.

A larger batch size would improve processing speed and make the final models better.

There are probably some torch or torchtext tools to help you deal with varying data point sizes that we could use. (Or just manually pad everything and discard all padding)

Starring a word

Allow users to star a word. This will allow them to save the word, for instance when they think the word is just cool but haven't come up with a meaning yet.

Turing test

More midnight issue ideas

We could keep a list of (convincing) generated words per category and create a sort of 'which word is a real word' quiz, where either

  • User is presented with two words, has to choose the real one
  • User is presented with a single word, must choose the class of that word

Have a "guest user" as default option

As a user I am often disgruntled by needing to register/login before being able to use the (local) app

Maybe we can have a guest account as default where you can generate words but don't have fancy options that users have
For those that just want to play around

Genericness of model loading

See #38 (comment)

Right now, model loader reconstructs model according to state_dict by using size of lstm.hh, which is not awful but also not too beautiful if the architecture changes to e.g. two layers, or if the model parameter names slightly change (e.g. lstm to rnn).

Could definitely be improved even though it is not an issue for models right now.

(The most generic solution would be to save the model directly (as a "binary") and not a state_dict, which makes the model instantly torch.load-able, but does introduce dependencies on the current exact RNN implementation/location of the definition, torch version, etc, which is why it is not the recommended way to save.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.