如果您正在尋找版本 3 文檔,您可以在此處找到它們版本 3
“NLP.js”是 Nodejs 的通用自然語言實用程式。目前支援:
!
版本 4 與以前的版本有很大不同。在此版本之前,NLP.js 是一個整體函式庫。大的變化:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
和say
。連接器範例包括:控制台連接器、Microsoft Bot Framework 連接器和 Direct Line Offline 連接器(此連接器可讓您使用 Microsoft Webchat 建立 Web 聊天機器人,但無需在 Azure 中部署任何內容)。如果您想在 Node 應用程式中使用 NLP.js,可以透過 NPM 安裝,如下所示:
npm install node-nlp
有一個在 React Native 中工作的 NLP.js 版本,因此您可以建立可以在行動裝置上訓練和執行的聊天機器人,即使沒有網路。您可以透過 NPM 安裝它:
npm install node-nlp-rn
一些限制:
您可以在資料夾/examples/02-qna-classic
中看到一個很好的使用範例。此範例能夠訓練機器人並將模型保存到文件中,因此當機器人再次啟動時,模型將被載入而不是再次訓練。
您可以使用幾行程式碼從頭開始建立 NLP:
const { NlpManager } = require ( 'node-nlp' ) ;
const manager = new NlpManager ( { languages : [ 'en' ] , forceNER : true } ) ;
// Adds the utterances and intents for the NLP
manager . addDocument ( 'en' , 'goodbye for now' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'bye bye take care' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'okay see you later' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'bye for now' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'i must go' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'hello' , 'greetings.hello' ) ;
manager . addDocument ( 'en' , 'hi' , 'greetings.hello' ) ;
manager . addDocument ( 'en' , 'howdy' , 'greetings.hello' ) ;
// Train also the NLG
manager . addAnswer ( 'en' , 'greetings.bye' , 'Till next time' ) ;
manager . addAnswer ( 'en' , 'greetings.bye' , 'see you soon!' ) ;
manager . addAnswer ( 'en' , 'greetings.hello' , 'Hey there!' ) ;
manager . addAnswer ( 'en' , 'greetings.hello' , 'Greetings!' ) ;
// Train and save the model.
( async ( ) => {
await manager . train ( ) ;
manager . save ( ) ;
const response = await manager . process ( 'en' , 'I should go now' ) ;
console . log ( response ) ;
} ) ( ) ;
這會在控制台中產生以下結果:
{ utterance: ' I should go now ' ,
locale: ' en ' ,
languageGuessed: false,
localeIso2: ' en ' ,
language: ' English ' ,
domain: ' default ' ,
classifications:
[ { label: ' greetings.bye ' , value: 0.698219120207268 },
{ label: ' None ' , value: 0.30178087979273216 },
{ label: ' greetings.hello ' , value: 0 } ],
intent: ' greetings.bye ' ,
score: 0.698219120207268,
entities:
[ { start: 12,
end: 14,
len: 3,
accuracy: 0.95,
sourceText: ' now ' ,
utteranceText: ' now ' ,
entity: ' datetime ' ,
resolution: [Object] } ],
sentiment:
{ score: 1,
comparative: 0.25,
vote: ' positive ' ,
numWords: 4,
numHits: 2,
type: ' senticon ' ,
language: ' en ' },
actions: [],
srcAnswer: ' Till next time ' ,
answer: ' Till next time ' }
預設情況下,神經網路會嘗試避免誤報。為了實現這一目標,內部流程之一是將網路從未見過的單字表示為一個特徵,該特徵為None
意圖賦予一定的權重。因此,如果您嘗試前面的範例“我必須走了”,它將返回None
意圖,因為這 4 個單字中有 2 個在訓練時從未見過。如果您不想避免這些誤報,並且您覺得對聲明的意圖進行分類更舒服,那麼您可以透過將useNoneFeature
設為 false 來停用此行為:
const manager = new NlpManager ( { languages : [ 'en' ] , nlu : { useNoneFeature : false } } ) ;
您還可以新增日誌進度,以便您可以追蹤訓練期間發生的情況。您可以將進度記錄到控制台:
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : true } } ) ;
或者您可以提供自己的日誌函數:
const logfn = ( status , time ) => console . log ( status , time ) ;
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : logfn } } ) ;
您可以在 Contributing 中閱讀有關如何做出貢獻的指南。
由貢獻者-img 製作。
您可以在行為準則中閱讀行為準則。
?
該項目由 AXA Group Operations Spain SA 開發
如果您需要聯絡我們,可以發送電子郵件至 [email protected]
版權所有 (c) AXA Group Operations Spain SA
特此免費授予任何獲得本軟體和相關文件文件(「軟體」)副本的人不受限制地使用本軟體,包括但不限於使用、複製、修改、合併的權利、發布、分發、再授權和/或銷售軟體的副本,並允許向其提供軟體的人員這樣做,但須滿足以下條件:
上述版權聲明和本授權聲明應包含在本軟體的所有副本或主要部分中。
本軟體以「現況」提供,不提供任何明示或暗示的保證,包括但不限於適銷性、特定用途的適用性和不侵權的保證。 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE軟體.