安裝 • 解除安裝 • 如何使用Chatte ? • Chatette vs Chatito ? • 開發 • 積分
Chatette是一個 Python 程序,可為給定模板檔案的Rasa NLU產生訓練資料集。如果您想為自然語言理解任務建立大型範例資料集而不會太頭疼,那麼Chatette就是適合您的專案。
具體來說, Chatte實作了一種領域特定語言 ( DSL ),讓您可以定義模板來產生大量句子,然後將這些句子儲存為Rasa NLU的輸入格式。
使用的DSL幾乎是 Rodrigo Pimentel 創建的優秀專案Chatito的超集。 (注意:DSL 實際上是 Rasa NLU 的 Chatito v2.1.x 的超集,而不是所有可能的適配器。 )
也可以使用互動模式:
要運行Chatette ,您需要安裝 Python。 Chatette可與 Python 2.7 和 3.x (>= 3.4) 搭配使用。
Chatette在 PyPI 上可用,因此可以使用pip
安裝:
pip install chatette
或者,您可以複製 GitHub 儲存庫並安裝要求:
pip install -r requirements/common.txt
然後,您可以使用 pip 安裝專案(作為可編輯套件),方法是從目錄Chatette/chatette/
執行以下命令:
pip install -e .
然後,您可以在複製的目錄中使用以下命令來執行該模組。
您可以使用 pip 來卸載Chatette :
pip uninstall chatette
Chatette使用和產生的資料從檔案載入並儲存到檔案中。您將因此擁有:
包含範本的一個或多個輸入檔。不需要特定的檔案副檔名。 wiki 上描述了製作這些範本的DSL語法。
一個或多個輸出文件,將由Chatette產生並包含產生的範例。這些檔案可以採用JSON (預設)或Markdown格式,並且可以直接輸入到Rasa NLU 。也可以使用JSONL格式。
安裝Chatette並建立模板檔案後,執行以下命令:
python -m chatette < path_to_template >
其中python
是 Python 解釋器(某些作業系統使用python3
作為 Python 3.x 解釋器的別名)。
您可以指定輸出檔案的名稱,如下所示:
python -m chatette < path_to_template > -o < output_directory_path >
是相對於執行腳本的目錄指定的。然後,輸出檔案將保存在
和
中的編號.json
檔案中。如果您沒有指定輸出目錄的路徑,則預設路徑為output
。
其他程式參數 和 在 wiki 中進行了描述。
TL;DR:主要賣點:使用 Chatette 處理大型專案更容易,您可以將大多數Chatito專案轉換為Chatette項目,無需任何修改。
一個完全合理的問題是:
既然Chatito已經實現了同樣的目的,為什麼還要Chatette存在呢?
這兩個項目其實有不同的目標:
Chatito 的目標是成為一個通用但功能強大的DSL ,並且應該保持非常清晰。雖然它對於小型專案來說完全沒問題,但當專案變得更大時,其DSL的簡單性可能會成為一種負擔:您的範本檔案變得非常大,以至於您在其中迷失了方向。
Chatette定義了更複雜的DSL ,以便能夠管理更大的項目,並嘗試盡可能與Chatito保持互通性。以下是Chatette具有而Chatito不具有的功能的非詳盡列表:
由於Chatette的 DSL 是Chatito的超集,因此用於Chatito的輸入檔大多數時候完全可用於Chatette (而不是相反)。因此,如果您以前使用過Chatito,那麼開始使用Chatette就很容易。
舉個例子,這個Chatito數據:
// This template defines different ways to ask for the location of toilets (Chatito version)
%[ask_toilet]('training': '3')
~[sorry?] ~[tell me] where the @[toilet#singular] is ~[please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are ~[please?]?
~[sorry]
sorry
Sorry
excuse me
Excuse me
~[tell me]
~[can you?] tell me
~[can you?] show me
~[can you]
can you
could you
would you
~[please]
please
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
可以直接作為Chatette的輸入,但此Chatette模板將產生相同的結果:
// This template defines different ways to ask for the location of toilets (Chatette version)
%[&ask_toilet](3)
~[sorry?] ~[tell me] where the @[toilet#singular] is [please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are [please?]?
~[sorry]
sorry
excuse me
~[tell me]
~[can you?] [tell|show] me
~[can you]
[can|could|would] you
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
Chatito版本可以說更容易閱讀,但Chatette版本更短,這在處理大量模板和潛在重複時可能非常有用。
請注意,與機器學習一樣,過多的數據可能會導致模型因過度擬合而表現不佳。雖然此腳本可用於產生成千上萬個範例,但不建議用於機器學習任務。
Chatette以Chatito命名:法語中的-ette可以翻譯為西班牙語中的-ita或-ito 。請注意, Chatte中的最後一個e不發音(如“note”中的情況)。
對於開發人員,您可以複製儲存庫並安裝開發需求: pip install -r requirements/develop.txt
然後,將模組安裝為可編輯: pip install -e
運行 pylint: tox -e pylint
運行 pycodestyle: tox -e pycodestyle
運行 pytest: tox -e pytest
免責聲明:這是一個我沒有報酬的副項目,不要指望我全天候 (24/7) 工作。
非常感謝他們!