這是 NLP Cloud API 的 Python 客戶端。請參閱文件以了解更多詳細資訊。
NLP Cloud 為NER、情感分析、分類、摘要、對話摘要、釋義、意圖分類、產品描述和廣告生成、聊天機器人、語法和拼寫糾正、關鍵字和關鍵短語提取、文本生成提供高性能預訓練或自定義模型、影像生成、原始碼產生、問答、自動語音辨識、機器翻譯、語言偵測、語意搜尋、語意相似性、標記化、POS 標記、嵌入和依存解析。它已準備好用於生產,並透過 REST API 提供服務。
您可以使用 NLP Cloud 預訓練模型、微調您自己的模型或部署您自己的模型。
如果您遇到問題,請隨時將其作為 Github 問題提出。謝謝!
透過 pip 安裝。
pip install nlpcloud
以下是一個完整的範例,使用 Facebook 的 Bart Large CNN 模型(帶有假令牌)總結了文本:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" )
client . summarization ( """One month after the United States began what has become a
troubled rollout of a national COVID vaccination campaign, the effort is finally
gathering real steam. Close to a million doses -- over 951,000, to be more exact --
made their way into the arms of Americans in the past 24 hours, the U.S. Centers
for Disease Control and Prevention reported Wednesday. That s the largest number
of shots given in one day since the rollout began and a big jump from the
previous day, when just under 340,000 doses were given, CBS News reported.
That number is likely to jump quickly after the federal government on Tuesday
gave states the OK to vaccinate anyone over 65 and said it would release all
the doses of vaccine it has available for distribution. Meanwhile, a number
of states have now opened mass vaccination sites in an effort to get larger
numbers of people inoculated, CBS News reported.""" )
下面是一個完整的範例,它執行相同的操作,但在 GPU 上:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" , True )
client . summarization ( """One month after the United States began what has become a
troubled rollout of a national COVID vaccination campaign, the effort is finally
gathering real steam. Close to a million doses -- over 951,000, to be more exact --
made their way into the arms of Americans in the past 24 hours, the U.S. Centers
for Disease Control and Prevention reported Wednesday. That s the largest number
of shots given in one day since the rollout began and a big jump from the
previous day, when just under 340,000 doses were given, CBS News reported.
That number is likely to jump quickly after the federal government on Tuesday
gave states the OK to vaccinate anyone over 65 and said it would release all
the doses of vaccine it has available for distribution. Meanwhile, a number
of states have now opened mass vaccination sites in an effort to get larger
numbers of people inoculated, CBS News reported.""" )
這是一個完整的範例,它執行相同的操作,但使用的是法語文字:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" , True , "fra_Latn" )
client . summarization ( """Sur des images aériennes, prises la veille par un vol de surveillance
de la Nouvelle-Zélande, la côte d’une île est bordée d’arbres passés du vert
au gris sous l’effet des retombées volcaniques. On y voit aussi des immeubles
endommagés côtoyer des bâtiments intacts. « D’après le peu d’informations
dont nous disposons, l’échelle de la dévastation pourrait être immense,
spécialement pour les îles les plus isolées », avait déclaré plus tôt
Katie Greenwood, de la Fédération internationale des sociétés de la Croix-Rouge.
Selon l’Organisation mondiale de la santé (OMS), une centaine de maisons ont
été endommagées, dont cinquante ont été détruites sur l’île principale de
Tonga, Tongatapu. La police locale, citée par les autorités néo-zélandaises,
a également fait état de deux morts, dont une Britannique âgée de 50 ans,
Angela Glover, emportée par le tsunami après avoir essayé de sauver les chiens
de son refuge, selon sa famille.""" )
傳回一個 json 物件:
{
"summary_text" : " Over 951,000 doses were given in the past 24 hours. That's the largest number of shots given in one day since the rollout began. That number is likely to jump quickly after the federal government gave states the OK to vaccinate anyone over 65. A number of states have now opened mass vaccination sites. "
}
在初始化期間將要使用的模型和 NLP Cloud 令牌傳遞給客戶端。
此模型可以是預訓練模型,如en_core_web_lg
、 bart-large-mnli
...,也可以是使用custom_model/
(例如custom_model/2568
)的自訂模型之一。請參閱文件以取得所有可用型號的完整清單。
您可以從 NLP Cloud 儀表板檢索您的令牌。
import nlpcloud client = nlpcloud . Client ( "" , "" )
如果您想使用 GPU,請傳遞gpu=True
。
import nlpcloud client = nlpcloud . Client ( "" , "" , gpu = True )
如果您想使用多語言外掛程式來處理非英語文本,請傳遞lang="
。例如,如果您想處理法文文本,您應該設定lang="fra_Latn"
。
import nlpcloud client = nlpcloud . Client ( "" , "" , lang = "" )
如果要發出非同步請求,請傳遞asynchronous=True
。
import nlpcloud client = nlpcloud . Client ( "" , "" , asynchronous = True )
如果您發出非同步請求,您將始終收到包含 URL 的快速回應。然後,您應該定期(例如每 10 秒)使用async_result()
輪詢該 URL,以檢查結果是否可用。這是一個例子:
client . async_result ( "https://api.nlpcloud.io/v1/get-async-result/21718218-42e8-4be9-a67f-b7e18e03b436" )
當回應準備好時,上述命令傳回一個 JSON 物件。否則返回None
。
呼叫asr()
方法並傳遞以下參數:
url
:託管音訊或視訊檔案的 URLencoded_file
:檔案的 Base 64 編碼版本input_language
:檔案的語言(ISO 程式碼) client . asr ( "Your url" )
上面的命令傳回一個 JSON 物件。
呼叫chatbot()
方法並傳遞您的輸入。作為一個選項,您還可以傳遞上下文和對話歷史記錄(字典列表)。每個字典都由聊天機器人的input
和response
組成。
client . chatbot ( "Your input" , "You context" , [{ "input" : "input 1" , "response" : "response 1" }, { "input" : "input 2" , "response" : "response 2" }, ...])
上面的命令傳回一個 JSON 物件。
呼叫classification()
方法並傳遞以下參數:
multi_class
:分類是否應該是多類,作為布林值。預設為 true。 client . classification ( "" , [ "label 1" , "label 2" , "..." ])
上面的命令傳回一個 JSON 物件。
呼叫code_generation()
方法並傳遞要產生的程式的指令:
client . code_generation ( "" )
上面的命令傳回一個 JSON 物件。
呼叫dependencies()
方法並傳遞要執行詞性標記 (POS) + 弧線的文字。
client . dependencies ( "" )
上面的命令傳回一個 JSON 物件。
呼叫embeddings()
方法並傳遞要從中提取嵌入的文字區塊清單。
client . embeddings ([ "" , "" , "" , ...])
上面的命令傳回一個 JSON 物件。
呼叫entities()
方法並傳遞要執行命名實體識別(NER)的文字。
client . entities ( "" )
上面的命令傳回一個 JSON 物件。
呼叫generation()
方法並傳遞以下參數:
max_length
:可選。產生的文字應包含的最大標記數。 CPU 上的 GPT-J 最多 256 個令牌,GPU 上的 GPT-J 和 GPT-NeoX 20B 最多 1024 個令牌,GPU 上的 Fast GPT-J 和 Finetuned GPT-NeoX 20B 最多 2048 個令牌。如果length_no_input
為 false,則產生文字的大小是max_length
與輸入文字長度之間的差值。如果length_no_input
為 true,則產生的文字的大小就是max_length
。預設為 50。length_no_input
: min_length
和max_length
是否不應包含輸入文字的長度(布林值)。如果為 false,則min_length
和max_length
包含輸入文字的長度。如果為 true,則 min_length 和max_length
不包含輸入文字的長度。預設為 false。end_sequence
:應該是產生序列末尾的特定標記,作為字串。例如如果可以的話.
或n
或###
或任何其他少於 10 個字元的內容。remove_input
:是否要從結果中刪除輸入文本,為布林值。預設為 false。num_beams
:用於波束搜尋的波束數量。 1 表示不進行波束搜尋。這是一個整數。預設為 1。num_return_sequences
:批次中每個元素獨立計算的返回序列的數量,作為整數。預設為 1。top_k
:為 top-k 過濾保留的最高機率詞彙標記的數量,作為整數。最多 1000 個代幣。預設為 0。top_p
:如果設定為 float < 1,則僅保留機率總計為 top_p 或更高的最可能的標記進行產生。這是一個浮標。應介於 0 和 1 之間。temperature
:用於對下一個標記機率進行建模的值,作為浮點數。應介於 0 和 1 之間。repetition_penalty
:重複懲罰的參數,作為浮點數。 1.0 表示沒有處罰。預設為 1.0。bad_words
:不允許產生的標記列表,作為字串列表。預設為空。remove_end_sequence
:可選。是否要從結果中刪除end_sequence
字串。預設為 false。 client . generation ( "" )
上面的命令傳回一個 JSON 物件。
呼叫gs_correction()
方法並傳遞您想要正確的文字:
client . gs_correction ( "" )
上面的命令傳回一個 JSON 物件。
呼叫image_generation()
方法並傳遞要產生的新圖像的文字指令:
client . image_generation ( "" )
上面的命令傳回一個 JSON 物件。
呼叫intent_classification()
方法並傳遞要從中提取意圖的文字:
client . intent_classification ( "" )
上面的命令傳回一個 JSON 物件。
呼叫kw_kp_extraction()
方法並傳遞要從中提取關鍵字和關鍵字詞的文字:
client . kw_kp_extraction ( "" )
上面的命令傳回一個 JSON 物件。
呼叫langdetection()
方法並傳遞要分析的文字以檢測語言。
client . langdetection ( "" )
上面的命令傳回一個 JSON 物件。
呼叫paraphrasing()
方法並傳遞要釋義的文字。
client . paraphrasing ( "" )
上面的命令傳回一個 JSON 物件。
呼叫question()
方法並傳遞以下內容:
client . question ( "" , "" )
上面的命令傳回一個 JSON 物件。
呼叫semantic_search()
方法並傳遞您的搜尋查詢。
client . semantic_search ( "Your search query" )
上面的命令傳回一個 JSON 物件。
呼叫semantic_similarity()
方法並傳遞由要比較的2 個文字區塊組成的清單。
client . semantic_similarity ([ "" , "" ])
上面的命令傳回一個 JSON 物件。
呼叫sentence_dependencies()
方法並傳遞由要對其執行 POS + 弧的多個句子組成的文字區塊。
client . sentence_dependencies ( "" )
上面的命令傳回一個 JSON 物件。
呼叫sentiment()
方法並傳遞以下內容:
client . sentiment ( "" , "" )
上面的命令傳回一個 JSON 物件。
呼叫speech_synthesis()
方法並傳遞要轉換為音訊的文字:
client . speech_synthesis ( "" )
上面的命令傳回一個 JSON 物件。
呼叫summarization()
方法並傳遞要摘要的文字。
client . summarization ( "" )
上面的命令傳回一個 JSON 物件。
呼叫tokens()
方法並傳遞要標記化的文字。
client . tokens ( "" )
上面的命令傳回一個 JSON 物件。
呼叫translation()
方法並傳遞要翻譯的文字。
client . translation ( "" )
上面的命令傳回一個 JSON 物件。