Giter Site home page Giter Site logo

napoler / keybert_transformers_backend Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 0.0 33 KB

keybert_transformers_backend keybert引入huggingface transformers作为后端,可以方便处理中文

Home Page: https://terrychan.org/2022/03/keybert%e5%81%9a%e4%b8%ad%e6%96%87%e6%96%87%e6%9c%ac%e5%85%b3%e9%94%ae%e8%af%8d%e6%8f%90%e5%8f%96/

License: GNU General Public License v3.0

Python 100.00%
keybert keyword-extraction

keybert_transformers_backend's Introduction

keybert_transformers_backend

keybert_transformers_backend

由于默认只支持SentenceTransformer模型导入,无法直接使用transformers作为后端,还好官方支持自定义方案导入。这里提供keybert引入huggingface transformers作为后端,可以方便处理中文

https://github.com/napoler/keybert_transformers_backend

安装

pip install tkitKeyBertBackend

#or
pip install git+https://github.com/napoler/keybert_transformers_backend
"""
    示例
    https://www.kaggle.com/terrychanorg/keybert-extract-keywords-notebookcb54da42f2
    """
from keybert import KeyBERT
import jieba
from tkitKeyBertBackend.TransformersBackend import TransformersBackend
from transformers import BertTokenizer, BertModel
doc = """
    1.没有提供分词功能,英文是空格分词,中文输入需要分完词输入。
    2.选择候选词:默认使用CountVectorizer进行候选词选择。
    3.  model:默认方式,候选词向量和句向量的距离排序。
        mmr:最大 边际距离 方法,保证关键词之间的多样性。考虑词之间的相似性。
        max_sum:候选词之间相似和最小的组合。

          """
seg_list = jieba.cut(doc, cut_all=True)
doc = " ".join(seg_list)
# kw_model = KeyBERT()
# keywords = kw_model.extract_keywords(doc)

tokenizer = BertTokenizer.from_pretrained('uer/chinese_roberta_L-2_H-128')
model = BertModel.from_pretrained("uer/chinese_roberta_L-2_H-128")

custom_embedder = TransformersBackend(embedding_model=model,tokenizer=tokenizer)
# Pass custom backend to keybert
kw_model = KeyBERT(model=custom_embedder)
print(kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 1), stop_words=None))
[('功能', 0.9146), ('提供', 0.8984), ('需要', 0.86), ('使用', 0.8554), ('没有', 0.8519)]

https://github.com/MaartenGr/KeyBERT

keybert_transformers_backend's People

Contributors

napoler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.