Skip to main content

DimSim - A Chinese Soundex Library (Python version)

DimSim is a library developed by the Scalable Knowledge Intelligence team at IBM Almaden Research Center as part of the SystemT project.

The PyPi project page can be found here. It was created in collaboration with IBM Center for Open-Source Data and AI Technologies (CODAIT).

Overview

We provide a phonetic algorithm for indexing Chinese characters by sound. The technical details can be found in the following paper:

Min Li, Marina Danilevsky, Sara Noeman and Yunyao Li. DIMSIM: An Accurate Chinese Phonetic Similarity Algorithm based on Learned High Dimensional Encoding. CoNLL 2018.

In this library, we provide a pre-trained model that can perform the following functions:

  • Given two Chinese phrases (of the same length), return the phonetic distance of the input phrases. Optionally you can feed in pinyin strings of Chinese phrases too.
  • Given a Chinese phrase, return its top-k similar (phoentically) Chinese phrases.

How to install

Dependencies:

  • pypinyin: used for translating Chinese characters into their correponding pinyins.

There are two ways to install this library:

  • Install from PyPi
pip install dimsim
  • Download the source code by cloning this repo and compile it yourself.
git clone git@github.com:System-T/DimSim.git

cd DimSim/

pip install -e .

How to use

Once you have the package installed you can use it for the two functions as shown below.

  • Computing phonetic distance of two Chinese phrases. The optional argument pinyin (False by default) can be used to provide a pinyin string list directly. See example usage below.
import dimsim

dist = dimsim.get_distance("大侠","大虾")
0.0002380952380952381

dist = dimsim.get_distance("大侠","大人")
25.001417183349876

dist = dimsim.get_distance(['da4','xia2'],['da4','xia1']], pinyin=True)
0.0002380952380952381

dist = dimsim.get_distance(['da4','xia2'],['da4','ren2']], pinyin=True)
25.001417183349876

  • Return top-k phonetically similar phrases of a given Chinese phrase. Two parameters:
  • mode controls the character type of the returned Chinese phrases, where 'simplified' represents simplified Chinese and 'traditional' represents traditional Chinese.
  • theta controls the size of search space for the candidate phrases.
import dimsim

candidates = dimsim.get_candidates("大侠", mode="simplified", theta=1)
['打下', '大虾', '大侠']

candidates = dimsim.get_candidates("粉丝", mode="traditinoal", theta=1)
['門市', '分時', '焚屍', '粉飾', '粉絲']

Citation

Please cite the library by referencing the published paper:

@InProceedings{K18-1043,
  author = 	{Li, Min and Danilevsky, Marina and Noeman, Sara and Li, Yunyao},
  title = 	{{DIMSIM:} An Accurate Chinese Phonetic Similarity Algorithm Based on Learned High Dimensional Encoding},
  booktitle = 	{Proceedings of the 22nd Conference on Computational Natural Language Learning},
  year = 	{2018},
  publisher = 	{Association for Computational Linguistics},
  pages = 	{444-453},
  location = 	{Brussels, Belgium},
  url = 	{http://aclweb.org/anthology/K18-1043}
}

Metadata

Release files for dimsim 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dimsim 0.2.2
File Size Uploaded
dimsim-0.2.2.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dimsim 0.2.2
File Interpreter ABI Platform
dimsim-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 4.8 MB

Release files / dimsim-0.2.2.tar.gz

Download URL dimsim-0.2.2.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
1b1b1df6efb989ccbb23f3d0a3788a0cd59de563c511e58fe057ddd9fc49d3be
BLAKE2b-256 checksum
How to use checksums
25ca9f0c5fa7eea40ef1f509d872a8e8a7c6b0144d3593913abad834db2415a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

Release files / dimsim-0.2.2-py3-none-any.whl

Download URL dimsim-0.2.2-py3-none-any.whl
Size 2.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f2babc83c26bc2650207716cc98f06e8d2642c3c592fd320c7061ea5a7b9b54c
BLAKE2b-256 checksum
How to use checksums
b704f2245b7260ea8fa61400cd25149a90c3a55d691301b0826d408222b5bf3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page