Skip to main content

No project description provided

Project description

vina2vi

vina2vi stands for Vietnamese no accent to Vietnamese,
which is a Python package aiming at helping foreigners decrypt messages in Vietnamese.
(More precisely, foreigners who already know the basics of the language.)

Among other things, this Python package tries to

  • Restore Vietnamese diacrytics
  • Translate acronyms, đổi vần, etc.

Installation

Run the following to install:

pip install vina2vi

Alternatively, you can also install from GitHub like this

pip install git+https://gitlab.com/phunc20/vina2vi

Usage

I only work on this project part-time, and work slowly. So this README will get changed fast and a lot. For the moment, there is not much in the package that is super useful. As time goes by, I will add more.

There is an utility function to help tell whether a string contains non-Vietnamese characters, is_foreign. As the name suggests,

  • If the string contains characters other than the modern Vietnamese alphabets, then is_foreign returns True
  • If the string consists exclusively of characters of modern Vietnamese alphabets, then is_foreign returns False
    • Languages whose alphabets are a subset of Vietnamese's are thus considered as Vietnamese
    • Currently, we do not consider chữ Nôm as Vietnamese; maybe we will in the future
In [1]: from vina2vi.utils import Vietnamese

In [2]: Vietnamese.is_foreign("Российская Федерация\tRossiyskaya Federatsiya")
Out[2]: True

In [3]: Vietnamese.is_foreign("\n\tRossiyskaya Federatsiya")
Out[3]: False

In [4]: Vietnamese.is_foreign("Tôi nói tiếng Việt Nam\t碎呐㗂越南")
Out[4]: True

In [5]: Vietnamese.is_foreign("Tôi nói tiếng Việt Nam\t")
Out[5]: False

In the metrics subpackage, there is a custom Levenshtein distance as tf.function and a related similarity function to measure how close a source string is to a target string. Here are some examples on how to use them:

import unidecode
import tensorflow as tf
from vina2vi.metrics import (
    batch_sim,
    batch_lev,
    tf_batch_sim,
    tf_batch_lev,
)

truths = [
    "Cơ sở hạ tầng điện, nước cũng như khu vực đặc biệt phát triển "
    "khác đã tăng 4,1% của 31,7% diện tích của tổng diện tích đất có nhiều rừng.",

    "Đặc trưng nổi bật nhất của loài này là vây, trong thực tế, "
    "vây lưng thứ hai, vây đuôi và vây hậu môn hợp nhất với nhau giống như cá chình.",

    "Cái đuôi dài cũng là một nét nổi bật.",
]

preds = []

for sent in truths:
    half = len(sent) // 2
    pred = unidecode.unidecode(sent[:half]) + sent[half:]
    preds.append(pred)

print(f"{truths = }")
print(f"{preds = }")
print()

batch_dist = batch_lev(preds, truths)
print(f"(Py land) {batch_dist = }")
batch_similarity = batch_sim(preds, truths)
print(f"(Py land) {batch_similarity = }")

truths = tf.constant(truths)
preds = tf.constant(preds)

batch_dist = tf_batch_lev(preds, truths)
print(f"(TF land) {batch_dist = }")
batch_similarity = tf_batch_sim(preds, truths)
print(f"(TF land) {batch_similarity = }")

Running the above code prints

truths = ['Cơ sở hạ tầng điện, nước cũng như khu vực đặc biệt phát triển khác đã tăng 4,1% của 31,7% diện tích của tổng diện tích đất có nhiều rừng.', 'Đặc trưng nổi bật nhất của loài này là vây, trong thực tế, vây lưng thứ hai, vây đuôi và vây hậu môn hợp nhất với nhau giống như cá chình.', 'Cái đuôi dài cũng là một nét nổi bật.']
preds = ['Co so ha tang dien, nuoc cung nhu khu vuc dac biet phat trien khac dã tăng 4,1% của 31,7% diện tích của tổng diện tích đất có nhiều rừng.', 'Dac trung noi bat nhat cua loai nay la vay, trong thuc te, vay lung thứ hai, vây đuôi v à vây hậu môn hợp nhất với nhau giống như cá chình.', 'Cai duoi dai cung là một nét nổi bật.']

(Py land) batch_dist = 19.0
(Py land) batch_similarity = 0.9319907236009713
(TF land) batch_dist = <tf.Tensor: shape=(), dtype=float32, numpy=19.0>
(TF land) batch_similarity = <tf.Tensor: shape=(), dtype=float32, numpy=0.9319908>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vina2vi-0.0.4.dev1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

vina2vi-0.0.4.dev1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file vina2vi-0.0.4.dev1.tar.gz.

File metadata

  • Download URL: vina2vi-0.0.4.dev1.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for vina2vi-0.0.4.dev1.tar.gz
Algorithm Hash digest
SHA256 e11188e940a5f180516b1b144e17bdbef46b4a6fe6366609c9c00c911c113f35
MD5 a7d1d3b4f99bb78eb3475d379e5cf40d
BLAKE2b-256 a027627c6b0576e53e3d1acd82e1663ec8172ac73d667ac2aec60c40b67f6a3d

See more details on using hashes here.

File details

Details for the file vina2vi-0.0.4.dev1-py3-none-any.whl.

File metadata

File hashes

Hashes for vina2vi-0.0.4.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 b135570b0fd99acbe685511d07b163bc39e83fd7f31c0b65d0fc3d1d977cdb55
MD5 1060d5f97c9a5a304228a962c60c5301
BLAKE2b-256 165fc0bffa7caa7c192d0e0ce6f7185252d104e256b966256098862d676664b3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page