提交 68234bd4 编写于 作者: H Hai Liang Wang

add synonyms.v fn

上级 19a56d2a
# 3.8
* change import path of utils in word2vec.py to local path
* expose vector fn
# 3.6
* Fix Bug: compare 保证交换两个句子后分数一致 [#60](https://github.com/huyingxi/Synonyms/issues/60)
......
......@@ -117,6 +117,16 @@ synonyms.nearby(人脸) = (
10. 运输机:0.720578
```
### synonyms#v
获得一个词语的向量,该向量为numpy的array,当该词语是未登录词时,抛出 KeyError异常。
```
>>> synonyms.(v("飞机")
array([-2.412167 , 2.2628384 , -7.0214124 , 3.9381874 , 0.8219283 ,
-3.2809453 , 3.8747153 , -5.217062 , -2.2786229 , -1.2572327 ],
dtype=float32)
```
## PCA
以“人脸”为例主要成分分析:
......
# synonyms 分数评测 [(v3.3.9)](https://pypi.python.org/pypi/synonyms/3.3.9)
# synonyms 分数评测 [(v3.3.10)](https://pypi.python.org/pypi/synonyms/3.3.10)
| 词1 | 词2 | synonyms | 人工评定 |
| --- | --- | --- | --- |
| 轿车 | 汽车 | 1.0 | 0.98 |
| 宝石 | 宝物 | 0.888 | 0.96 |
| 宝石 | 宝物 | 1.0 | 0.96 |
| 旅游 | 游历 | 0.872 | 0.96 |
| 男孩子 | 小伙子 | 1.0 | 0.94 |
| 海岸 | 海滨 | 0.89 | 0.925 |
| 庇护所 | 精神病院 | 0.511 | 0.9025 |
| 庇护所 | 精神病院 | 0.587 | 0.9025 |
| 魔术师 | 巫师 | 0.945 | 0.875 |
| 中午 | 正午 | 0.899 | 0.855 |
| 火炉 | 炉灶 | 1.0 | 0.7775 |
| 食物 | 水果 | 0.805 | 0.77 |
| 鸟 | 公鸡 | 0.699 | 0.7625 |
| 鸟 | 鹤 | 0.618 | 0.7425 |
| 火炉 | 炉灶 | 0.895 | 0.7775 |
| 食物 | 水果 | 0.766 | 0.77 |
| 鸟 | 公鸡 | 0.279 | 0.7625 |
| 鸟 | 鹤 | 0.247 | 0.7425 |
| 工具 | 器械 | 0.883 | 0.7375 |
| 兄弟 | 和尚 | 0.241 | 0.705 |
| 起重机 | 器械 | 0.485 | 0.42 |
| 小伙子 | 兄弟 | 0.463 | 0.415 |
| 旅行 | 轿车 | 0.172 | 0.29 |
| 和尚 | 圣贤 | 0.474 | 0.275 |
| 兄弟 | 和尚 | 0.096 | 0.705 |
| 起重机 | 器械 | 0.194 | 0.42 |
| 小伙子 | 兄弟 | 0.704 | 0.415 |
| 旅行 | 轿车 | 0.069 | 0.29 |
| 和尚 | 圣贤 | 0.19 | 0.275 |
| 墓地 | 林地 | 0.872 | 0.2375 |
| 食物 | 公鸡 | 0.441 | 0.2225 |
| 海岸 | 丘陵 | 0.585 | 0.2175 |
| 森林 | 墓地 | 0.29 | 0.21 |
| 岸边 | 林地 | 0.501 | 0.1575 |
| 和尚 | 奴隶 | 0.117 | 0.1375 |
| 海岸 | 森林 | 0.488 | 0.105 |
| 小伙子 | 巫师 | 0.411 | 0.105 |
| 琴弦 | 微笑 | 0.112 | 0.0325 |
| 玻璃 | 魔术师 | 0.067 | 0.0275 |
| 中午 | 绳子 | 0.088 | 0.02 |
| 公鸡 | 航行 | 0.027 | 0.02 |
| 食物 | 公鸡 | 0.177 | 0.2225 |
| 海岸 | 丘陵 | 0.234 | 0.2175 |
| 森林 | 墓地 | 0.116 | 0.21 |
| 岸边 | 林地 | 0.2 | 0.1575 |
| 和尚 | 奴隶 | 0.047 | 0.1375 |
| 海岸 | 森林 | 0.195 | 0.105 |
| 小伙子 | 巫师 | 0.164 | 0.105 |
| 琴弦 | 微笑 | 0.045 | 0.0325 |
| 玻璃 | 魔术师 | 0.027 | 0.0275 |
| 中午 | 绳子 | 0.035 | 0.02 |
| 公鸡 | 航行 | 0.011 | 0.02 |
......@@ -59,6 +59,12 @@ class Test(unittest.TestCase):
print("test_wordseg")
print(synonyms.seg("中文近义词工具包"))
def test_word_vector(self):
print("test_word_vector")
word = "三国"
print(word, "向量", synonyms.v(word))
def test_diff(self):
print("test_diff")
result = []
......
......@@ -13,7 +13,7 @@ Welcome
setup(
name='synonyms',
version='3.6.0',
version='3.7.0',
description='Chinese Synonyms for Natural Language Processing and Understanding',
long_description=LONGDOC,
author='Hai Liang Wang, Hu Ying Xi',
......
......@@ -206,6 +206,13 @@ def _levenshtein_distance(sentence1, sentence2):
# print("smoothing[%s| %s]: %s -> %s" % (sentence1, sentence2, d, s))
return s
def v(word):
'''
获得一个词语的向量,OOV时抛出 KeyError 异常
'''
y_ = any2unicode(word).strip()
return _vectors.word_vec(y_)
def _nearby_levenshtein_distance(s1, s2):
'''
使用空间距离近的词汇优化编辑距离计算
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册