1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chatopera-Synonyms

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Синонимы

Китайские синонимы для обработки и понимания естественного языка.

Лучшие китайские синонимы: чат-бот, интеллектуальный пакет инструментов для вопросов и ответов.

synonyms можно использовать для многих задач понимания естественного языка: выравнивание текста, рекомендательные алгоритмы, вычисление сходства, семантический сдвиг, извлечение ключевых слов, извлечение понятий, автоматическое резюме, поисковые системы и т. д.

Чтобы обеспечить стабильное, надёжное и долгосрочное оптимизированное обслуживание, Synonyms перешли на использование лицензии Сун Сона, версия 1.0 и взимать плату за загрузку моделей машинного обучения. Подробности см. в магазине сертификатов. Предыдущие вкладчики (выдающиеся вкладчики кода), могут связаться с нами, чтобы обсудить оплату. — Chatopera Inc. @ Октябрь 2023

Содержание:

Установка

Следуйте инструкциям ниже, чтобы установить и активировать пакеты.

1/3 Установить пакет исходного кода

pip install -U synonyms

Текущая стабильная версия v3.x.

2/3 Настроить идентификатор лицензии

Пакет модели машинного обучения Synonyms требует лицензии от Chatopera License Store, сначала приобретите лицензию и получите идентификатор лицензии на странице «Лицензии» в Chatopera License Store (идентификатор лицензии: на странице сведений о сертификате в магазине сертификатов нажмите кнопку «Копировать сертификат»).

3/3 Скачать пакет модели

Наконец, загрузите пакет модели с помощью команды или скрипта:

python -c "import synonyms; synonyms.display('能量')" # скачать файл векторов слов

Использование

Поддерживает использование переменных среды для настройки таблицы сегментации слов и файла векторов слов word2vec. ### synonyms#nearby(word [, size = 10])

import synonyms
print("人脸: ", synonyms.nearby("人脸"))
print("识别: ", synonyms.nearby("识别"))
print("NOT_EXIST: ", synonyms.nearby("NOT_EXIST"))

synonyms.nearby(WORD [,SIZE]) возвращает кортеж, который содержит два элемента: ([nearby_words], [nearby_words_score]). nearby_words — это список синонимов слова WORD, отсортированный по убыванию расстояния от исходного слова. nearby_words_score — это массив значений расстояний для каждого слова из списка nearby_words. Значение находится в диапазоне от 0 до 1, где 1 означает максимальное сходство. По умолчанию размер возвращаемого списка равен 10.

Например:

synonyms.nearby(人脸, 10) = (
    ["图片", "图像", "通过观察", "数字图像", "几何图形", "脸部", "图象", "放大镜", "面孔", "Mii"],
    [0.597284, 0.580373, 0.568486, 0.535674, 0.531835, 0.530
095, 0.525344, 0.524009, 0.523101, 0.516046])

Если слово не найдено в словаре, возвращается пустой кортеж ([], []). Текущий размер словаря составляет 435 729 слов.

synonyms#compare(sen1, sen2 [, seg=True])

Сравнение схожести двух предложений.

sen1 = "发生历史性变革"
sen2 = "发生历史性变革"
r = synonyms.compare(sen1, sen2, seg=True)

Параметр seg определяет, будет ли synonyms.compare разбивать предложения sen1 и sen2 на слова. По умолчанию установлено значение True. Возвращаемое значение находится в диапазоне от 0 до 1. Чем ближе значение к 1, тем более похожи предложения.

Примеры:

  • «Знамя ведёт за собой» и «Дорога определяет судьбу»: 0,429.
  • «Знамя ведёт за собой» и «Знамя указывает путь»: 0,93.
  • «Происходит историческое изменение» и «Происходит историческое изменение»: 1,0.

synonyms#display(word [, size = 10])

Удобный вывод синонимов с использованием метода synonyms#nearby.

>>> synonyms.display("飞机")
'飞机'近义词
  1. 飞机:1.0
  2. 直升机:0.8423391
  3. 客机:0.8393003
  4. 滑翔机:0.7872388
  5. 军用飞机:0.7832081
  6. 水上飞机:0.77857226
  7. 运输机:0.7724742
  8. 航机:0.7664748
  9. 航空器:0.76592904
  10. 民航机:0.74209654

Размер выводимого списка синонимов по умолчанию равен 10.

synonyms#describe()

Вывод информации о пакете:

>>> synonyms.describe()
Vocab size in vector model: 435729
model_path: /Users/hain/chatopera/Synonyms/synonyms/data/words.vector.gz
version: 3.18.0
{'vocab_size': 435729, 'version': '3.18.0', 'model_path': '/chatopera/Synonyms/synonyms/data/words.vector.gz'}

synonyms#v(word)

Получение вектора для заданного слова. Вектор представляет собой массив numpy. Если слово не существует в словаре, возникает исключение 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)

synonyms#sv(sentence, ignore=False)

Получение вектора предложения после его разделения на слова. Используется модель Bag of Words.

Параметры:

  • sentence: предложение после разделения на слова;
  • ignore: если установлено значение False, то при отсутствии слова в словаре генерируется случайный вектор.

synonyms#seg(sentence)

Разделение китайского текста на слова без учёта пунктуации и стоп-слов.

Пример:

synonyms.seg("中文近义词工具包")

Результат представляет собой кортеж из двух списков: первый список содержит слова, а второй — их части речи.

Пример результата:

(['中文', '近义词', '工具包'], ['nz', 'n', 'n'])

Разделение производится без учёта пунктуации.

synonyms#keywords(sentence [, topK=5, withWeight=False])

Извлечение ключевых слов из предложения. По умолчанию ключевые слова выбираются на основе важности.

Пример:

keywords = synonyms.keywords("9月15日以来,台积电、高通、三星等华为的重要合作伙伴,只要没有美国的相关许可证,都无法供应芯片给华为,而中芯国际等国产芯片企业,也因采用美国技术,而无法供货给华为。目前华为部分型号的手机产品出现货少的现象,若该形势持续下去,华为手机业务将遭受重创。")
``` **++++++++++ CPU Cores ++++++++++**

Cores: 4

CPU Load: 60

**++++++++++ System Memory ++++++++++**

meminfo 8GB

`synonyms#nearby: 100000 loops, best of 3 epochs: 0.209 usec per loop`

## Live Sharing

[52nlp.cn](http://www.52nlp.cn/synonyms-%E4%B8%AD%E6%96%87%E8%BF%91%E4%B9%89%E8%AF%8D%E5%B7%A5%E5%85%B7%E5%8C%85)

[机器之心](https://www.jiqizhixin.com/articles/2018-01-14-3)

[线上分享实录: Synonyms 中文近义词工具包 @ 2018-02-07](http://gitbook.cn/gitchat/activity/5a563545a8b23d387720ccd5)

## Statement

[Synonyms](https://github.com/chatopera/Synonyms)发布证书 MIT。数据和程序可用于研究和商业产品,必须注明引用和地址,比如发布的任何媒体、期刊、杂志或博客等内容。

@online{Synonyms:hain2017, author = {Hai Liang Wang, Hu Ying Xi}, title = {中文近义词工具包Synonyms}, year = 2017, url = {https://github.com/chatopera/Synonyms}, urldate = {2017-09-27} }


# References

[wikidata-corpus](https://github.com/Samurais/wikidata-corpus)

[word2vec 原理推导与代码分析](http://www.hankcs.com/nlp/word2vec.html)

# Frequently Asked Questions (FAQ)

1. 是否支持添加单词到词表中?

不支持,欲了解更多请看 [#5](https://github.com/chatopera/Synonyms/issues/5)

2. 词向量的训练是用哪个工具?

Google 发布的[word2vec](https://code.google.com/archive/p/word2vec/),该库由 C 语言编写,内存使用效率高,训练速度快。gensim 可以加载 word2vec 输出的模型文件。

3. 相似度计算的方法是什么?

[详见 #64](https://github.com/chatopera/Synonyms/issues/64)

4. [#118 词向量文件一直下载不下来?](https://github.com/chatopera/Synonyms/issues/118)

# Authors

[Hai Liang Wang](https://pre-angel.com/peoples/hailiang-wang/)

[Hu Ying Xi](https://github.com/huyingxi)

# 自然语言处理推荐入门&工具书

本书由 [Synonyms](https://github.com/chatopera/Synonyms) 作者参与著作。

<p align="center">
  <b>快速购书<a href="https://item.jd.com/12479014.html" target="_blank">链接</a></b><br>
  <a href="https://item.jd.com/12479014.html" target="_blank">
  <img src="https://user-images.githubusercontent.com/3538629/48657619-bcd24880-ea6e-11e8-8c4e-8bcb00761942.png" width="400">      
  </a>
</p>

[《智能问答与深度学习》](https://item.jd.com/12479014.html) 这本书是服务于准备入门机器学习和自然语言处理的学生和软件工程师的,在理论上介绍了很多原理、算法,同时也提供很多示例程序增加实践性,这些程序被汇总到示例程序代码库,这些程序主要是帮助大家理解原理和算法的,欢迎大家下载和执行。代码库的地址是:

[https://github.com/l11x0m7/book-of-qna-code](https://github.com/l11x0m7/book-of-qna-code)

# Give credits to

[Word2vec by Google](https://code.google.com/archive/p/word2vec/)

[Wikimedia: 训练语料来源](https://dumps.wikimedia.org/)

[gensim: word2vec.py](https://github.com/RaRe-Technologies/gensim)

[SentenceSim: 相似度评测语料](https://github.com/fssqawj/SentenceSim/)

[jieba: 中文分词](https://github.com/fxsjy/jieba)

# License

[Chunsong Public License, version 1.0](./LICENSE)

# Project Sponsor

## Chatopera 云服务

[https://bot.chatopera.com/](https://bot.chatopera.com/)

[Chatopera 云服务](https://bot.chatopera.com)是一站式实现聊天机器人的云服务,按接口调用次数计费。Chatopera 云服务是 [Chatopera 机器人平台](https://docs.chatopera.com/products/chatbot-platform/index.html)的软件即服务实例。在云计算基础上,Chatopera 云服务属于**聊天机器人即服务**的云服务。

Chatopera 机器人平台包括知识库、多轮对话、意图识别和语音识别等组件,标准化聊天机器人开发,支持企业 OA 智能问答、HR 智能问答、智能客服和网络营销等场景。企业 IT 部门、业务部门借助 Chatopera 云服务快速让聊天机器人上线!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chatopera-Synonyms.git
git@api.gitlife.ru:oschina-mirror/chatopera-Synonyms.git
oschina-mirror
chatopera-Synonyms
chatopera-Synonyms
master