An open-source online reverse dictionary.

Overview

WantWords Logo

An open-source online reverse dictionary

What Is a Reverse Dictionary?

Opposite to a regular (forward) dictionary that provides definitions for query words, a reverse dictionary returns words semantically matching the query descriptions.

rd_example

What Can a Reverse Dictionary Do?

  • Solve the tip-of-the-tongue problem, the phenomenon of failing to retrieve a word from memory
  • Help new language learners
  • Help word selection (or word dictionary) anomia patients, people who can recognize and describe an object but fail to name it due to neurological disorder

Our System

Workflow

workflow

Core Model

The core model of WantWords is based on our proposed Multi-channel Reverse Dictionary Model [paper] [code], as illustrate in the following figure.

model

Pre-trained Models and Data

Download and decompress data and pretrained models to BASE_PATH/website_RD/.

Decompress data.rar under BASE_PATH/website_RD/.

Key Requirements

  • Django==2.2.5
  • django-cors-headers==3.5.0
  • numpy==1.17.2
  • pytorch-transformers==1.2.0
  • requests==2.22.0
  • scikit-learn==0.22.1
  • scipy==1.4.1
  • thulac==0.2.0
  • torch==1.2.0
  • urllib3==1.25.6
  • uWSGI==2.0.18
  • uwsgitop==0.11

Cite

If the code or data help you, please cite the following two papers.

@inproceedings{qi2020wantwords,
  title={WantWords: An Open-source Online Reverse Dictionary System},
  author={Qi, Fanchao and Zhang, Lei and Yang, Yanhui and Liu, Zhiyuan and Sun, Maosong},
  booktitle={Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations},
  pages={175--181},
  year={2020}
}

@inproceedings{zhang2020multi,
  title={Multi-channel reverse dictionary model},
  author={Zhang, Lei and Qi, Fanchao and Liu, Zhiyuan and Wang, Yasheng and Liu, Qun and Sun, Maosong},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  pages={312--319},
  year={2020}
}
Comments
  • __Originally posted by @Yynny in https://github.com/camsong/You-Dont-Need-jQuery/issues/254__

    __Originally posted by @Yynny in https://github.com/camsong/You-Dont-Need-jQuery/issues/254__

    Originally posted by @Yynny in https://github.com/camsong/You-Dont-Need-jQuery/issues/254

    Originally posted by @Yynny in https://github.com/NabilAFK/nabilafk.github.io/issues/3

    opened by Yynny 2
  • 开源版本似乎未提供敏感词处理代码

    开源版本似乎未提供敏感词处理代码

    当查询词内包含敏感词时,线上部署版本会返回{"details":"The input description contains sensitive words","error":8,"message":"content error"},在开源版本中未见此逻辑。

    opened by lwd-temp 1
  • 展示结果建议:对相关性极低的词语单独列一个 Section

    展示结果建议:对相关性极低的词语单独列一个 Section

    以“老婆”为例,在“老公”这个词后面的结果相关性没有那么强。或许可以为非专业用户做一点展示上的优化,按“高相关性”“中相关性”“低相关性”等进行分区或者分三列展示,并说明不同的可信程度。

    婆娘
    女人
    妻子
    媳妇儿
    太太
    娘儿们
    妻
    妻室
    娘子
    爱人
    婆姨
    老伴
    老婆子
    夫人
    老小
    内助
    老公
    小老婆
    丈母娘
    肏
    小姨子
    儿媳妇
    岳母
    骚货
    二奶
    一男半女
    二婚
    小姑子
    外遇
    屄
    戴绿帽子
    小叔子
    公婆
    媳妇
    大老婆
    嫂子
    闺女
    女朋友
    三妻四妾
    公爹
    婊子
    大姨子
    绿帽子
    老娘
    前妻
    独守空房
    情夫
    沾花惹草
    舅妈
    贤惠
    打光棍
    丈夫
    拈花惹草
    富婆
    贱货
    男方
    奶子
    贤妻良母
    荡妇
    娶
    嫁人
    偷情
    女方
    守寡
    守活寡
    红杏出墙
    娇妻
    女友
    鬼混
    糟糠之妻
    上床
    淫妇
    偷人
    色鬼
    知冷知热
    男友
    后妈
    鸡巴
    姐夫
    妞
    前夫
    吃醋
    孙媳妇
    百依百顺
    少奶奶
    臭钱
    嫂嫂
    养老送终
    女婿
    小姑
    花心
    情妇
    复婚
    弟媳
    爸
    老大不小
    再婚
    家务活
    千依百顺
    婶子
    
    enhancement 
    opened by rijieli 1
  • Missing data file from given link in README.md

    Missing data file from given link in README.md

    Hi syheliel, First of all, your project is amazing, but downloaded data from the given link in README.md is insufficient to run the project (e.g., missing 'wordTrans_Ch_En_Sort.json', 'wordTrans_En_Ch_Sort.json', 'word2synset_synset.txt', etc.). It would be great if you can provide the link with such missing files.

    Thank you so much.

    opened by kimhung-uit 1
  • 词库太老了

    词库太老了

    汉-英反查: 搜索“新冠病毒”,结果如下: 1.retrovirus 2.HIV 3.viral 4.cytomegalovirus 5.virus 6.herpes zoster 7.antiviral 8.acyclovir 9.H1N1 10.virology

    正确结果应该是:Coronavirus

    enhancement 
    opened by lhggame 2
  • 能识别的字太少了

    能识别的字太少了

    刚才我验证了0x4e00到0x9fff的每一个汉字能否被识别(能出现相关近义词就是能识别,返回{"error": 1}就不能识别)

    验证代码:(可能需要数小时)

    import requests as r
    
    result = 0
    result_2 = 0
    for i in range(0x4e01, 0x9fff + 1):
        t = r.get(f"https://wantwords.thunlp.org/ChineseRD/?description={chr(i)}&mode=CC")
        if i % 256 == 0:
            print(f"There are {result_2} unrecognizable characters in 256 characters({hex(i-256)}~{hex(i)}).")
            result_2 = 0
        if t.text == '{"error": 1}':
            result += 1
            result_2 += 1
    print(result)
    

    结果显示:在所有的20992个汉字中,竟然有9033个汉字不能被识别,能识别的仅有11959个!

    因此,我觉得软件支持的汉字太少(CJK基本集支持度才57%,扩展区更加不行),很多不算太生僻的字都不能识别。可以考虑扩展词库了(肯定可以,有些不支持的汉字百度都能搜到)。

    enhancement todo 
    opened by QWERTY770 1
Owner
THUNLP
Natural Language Processing Lab at Tsinghua University
THUNLP
git《USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation》(2020) GitHub: [fig2]

USD-Seg This project is an implement of paper USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation, based on FCOS detector f

Ruolin Ye 80 Nov 28, 2022
Official implementation of Deep Convolutional Dictionary Learning for Image Denoising.

DCDicL for Image Denoising Hongyi Zheng*, Hongwei Yong*, Lei Zhang, "Deep Convolutional Dictionary Learning for Image Denoising," in CVPR 2021. (* Equ

Z80 91 Dec 21, 2022
Pytorch implementation of "Geometrically Adaptive Dictionary Attack on Face Recognition" (WACV 2022)

Geometrically Adaptive Dictionary Attack on Face Recognition This is the Pytorch code of our paper "Geometrically Adaptive Dictionary Attack on Face R

null 6 Nov 21, 2022
HyperDict - Self linked dictionary in Python

Hyper Dictionary Advanced python dictionary(hash-table), which can link it-self

null 8 Feb 6, 2022
Reverse engineering Rosetta 2 in M1 Mac

Project Champollion About this project Rosetta 2 is an emulation mechanism to run the x86_64 applications on Arm-based Apple Silicon with Ahead-Of-Tim

FFRI Security, Inc. 258 Jan 7, 2023
Multi-tool reverse engineering collaboration solution.

CollaRE v0.3 Intorduction CollareRE is a tool for collaborative reverse engineering that aims to allow teams that do need to use more then one tool du

null 105 Nov 27, 2022
Official Pytorch implementation of paper "Reverse Engineering of Generative Models: Inferring Model Hyperparameters from Generated Images"

Reverse_Engineering_GMs Official Pytorch implementation of paper "Reverse Engineering of Generative Models: Inferring Model Hyperparameters from Gener

null 100 Dec 18, 2022
Context Axial Reverse Attention Network for Small Medical Objects Segmentation

CaraNet: Context Axial Reverse Attention Network for Small Medical Objects Segmentation This repository contains the implementation of a novel attenti

null 401 Dec 23, 2022
Reverse engineer your pytorch vision models, in style

?? Rover Reverse engineer your CNNs, in style Rover will help you break down your CNN and visualize the features from within the model. No need to wri

Mayukh Deb 32 Sep 24, 2022
The code repository for "RCNet: Reverse Feature Pyramid and Cross-scale Shift Network for Object Detection" (ACM MM'21)

RCNet: Reverse Feature Pyramid and Cross-scale Shift Network for Object Detection (ACM MM'21) By Zhuofan Zong, Qianggang Cao, Biao Leng Introduction F

TempleX 9 Jul 30, 2022
Weakly Supervised Posture Mining with Reverse Cross-entropy for Fine-grained Classification

Fine-grainedImageClassification Weakly Supervised Posture Mining with Reverse Cross-entropy for Fine-grained Classification We trained model here: lin

ZhenchaoTang 14 Oct 21, 2022
3ds-Ghidra-Scripts - Ghidra scripts to help with 3ds reverse engineering

3ds Ghidra Scripts These are ghidra scripts to help with 3ds reverse engineering

Zak 7 May 23, 2022
wlad 2 Dec 19, 2022
Pytorch implementation of the paper "Enhancing Content Preservation in Text Style Transfer Using Reverse Attention and Conditional Layer Normalization"

Pytorch implementation of the paper "Enhancing Content Preservation in Text Style Transfer Using Reverse Attention and Conditional Layer Normalization"

Dongkyu Lee 4 Sep 18, 2022
OpenGAN: Open-Set Recognition via Open Data Generation

OpenGAN: Open-Set Recognition via Open Data Generation ICCV 2021 (oral) Real-world machine learning systems need to analyze novel testing data that di

Shu Kong 90 Jan 6, 2023
Bolt Online Learning Toolbox

Bolt Online Learning Toolbox Bolt features discriminative learning of linear predictors (e.g. SVM or Logistic Regression) using fast online learning a

Peter Prettenhofer 87 Dec 12, 2022
🌊 Online machine learning in Python

In a nutshell River is a Python library for online machine learning. It is the result of a merger between creme and scikit-multiflow. River's ambition

OnlineML 4k Jan 2, 2023
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

This is the Vowpal Wabbit fast online learning code. Why Vowpal Wabbit? Vowpal Wabbit is a machine learning system which pushes the frontier of machin

Vowpal Wabbit 8.1k Jan 6, 2023