安裝torchtext


torchtext使用教程

主要內容:

  • 如何使用torchtext建立語料庫
  • 如何使用torchtext將詞轉下標,下標轉詞,詞轉詞向量
  • 如何建立相應的迭代器

torchtext組件流程:

  • 定義Field:聲明如何處理數據,主要包含以下數據預處理的配置信息,比如指定分詞方法,是否轉成小寫,起始字符,結束字符,補全字符以及詞典等等
  • 定義Dataset:用於得到數據集,繼承自pytorch的Dataset。此時數據集里每一個樣本是一個 經過 Field聲明的預處理 預處理后的 wordlist
  • 建立vocab:在這一步建立詞匯表,詞向量(word embeddings)
  • 構造迭代器Iterator:: 主要是數據輸出的模型的迭代器。構造迭代器,支持batch定制用來分批次訓練模型。
(deeplearning) C:\Users\WQBin>conda search  torchtext
Loading channels: done
# Name                       Version           Build  Channel
torchtext                      0.4.0    pyhb384e40_1  anaconda/cloud/pytorch
torchtext                      0.5.0            py_1  anaconda/cloud/pytorch

(deeplearning) C:\Users\WQBin>conda install  torchtext
Collecting package metadata (current_repodata.json): done
Solving environment: done

 

SentencePiece

https://pypi.org/project/sentencepiece/

 SentencePiece是一個google開源的自然語言處理工具包。網上是這么描述它的:數據驅動、跨語言、高性能、輕量級——面向神經網絡文本生成系統的無監督文本詞條化工具。

 那么它究竟是干什么的呢?先舉個例子:假設在數據挖掘時,有一列特征T是文本描述,我們需要將其轉成枚舉型,或者多個布爾型代入模型,即:需要從文本中提供信息構造新特征。

 首先,我們可以用標點將長句長分成短句,以短句作為關鍵詞,看每個實例的特征T中是否包含該關鍵詞,從而構造新的布爾型特征。但有時候表達同一個意思所使用的文本並不完全一致,比如“買三送一”和“買三送一啦!”是一個意思。

 此時,我們可以用SnowNLP或者jieba分詞把描述拆成單個詞,看T是否包括該關鍵詞。但這樣用也有一個問題:可能把一個意思拆成了多個特征,比如“袖子較短,領子較大”被拆成了四個獨立的特征“袖子”“較短”“領子”“較大”,組合效果沒有了。

 我們想要的效果是:如果“袖子較短”這個組合經常出現,就把它當成一個詞處理。jieba中可以用自定義詞典的方式加入已知的詞。

 還有一些組合常常出現,但事先並不知道,於是我們想讓機器自動學習經常組合出現的短語和詞。SentencePiece就是來解決這個問題的。它需要大量文本來訓練。

 SentencePiece的用途不限於自然語言處理,記得DC之前有一個葯物分子篩選的比賽,蛋白質的一級結構是氨基酸序列,需要研究氨基酸序列片斷,片斷的長度又是不固定的,此處就可以用SentencePiece進行切分。

   原理是重復出現次數多的片斷,就認為是一個意群(詞)。

   SentencePiece分為兩部分:訓練模型和使用模型,訓練模型部分是用C語言實現的,可編成二進程程序執行,訓練結果是生成一個model和一個詞典文件。

 模型使用部分同時支持二進制程序和Python調用兩種方式,訓練完生成的詞典數據是明文,可編輯,因此也可以用任何語言讀取和使用。、

conda 是沒有的,需要使用pip安裝

(deeplearning) C:\Users\WQBin>pip install sentencepiece
Collecting sentencepiece
  Downloading https://files.pythonhosted.org/packages/61/c5/e7e2f45c076097ac1a58b21288be25ae4eb4044be899e6c04cd897a00f15/sentencepiece-0.1.85-cp37-cp37m-win_amd64.whl (1.2MB)
     |████████████████████████████████| 1.2MB 547kB/s
Installing collected packages: sentencepiece
Successfully installed sentencepiece-0.1.85
安裝完還是報錯:
ModuleNotFoundError: No module named 'spacy'

 

Can't find model 'en'

安裝完'spacy'有報錯如下:

Can't find model 'en'.  It doesn't seem to be a shortcut link, a Python package or a valid

報錯信息:Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid

錯誤描述:在CMD命令框中安裝了spacy以及安裝了''en"模塊,但是在Pycharm中報錯,說找不到

解決辦法:在普通命令框中輸入''en"模塊安裝命令python -m spacy download en,會顯示權限不夠,但是仍然顯示link successful ,但是在Pycharm中依然報錯。

Installing collected packages: en-core-web-sm
Successfully installed en-core-web-sm-2.2.5
✔ Download and installation successful
You can now load the model via spacy.load('en_core_web_sm')
你沒有足夠的權限執行此操作。
✘ Couldn't link model to 'en'
Creating a symlink in spacy/data failed. Make sure you have the required
permissions and try re-running the command as admin, or use a virtualenv. You
can still import the model as a module and call its load() method, or create the
symlink manually.

所以,用管理員身份打開【Anaconda Prompt (Anaconda3)】,在輸入同樣的命令,問題解決。

✔ Download and installation successful
You can now load the model via spacy.load('en_core_web_sm')
為 D:\app\Anaconda3\envs\deeplearning\lib\site-packages\spacy\data\en <<===>> D:\app\Anaconda3\envs\deeplearning\lib\site-packages\en_core_web_sm 創建的符號鏈接
✔ Linking successful
D:\app\Anaconda3\envs\deeplearning\lib\site-packages\en_core_web_sm -->
D:\app\Anaconda3\envs\deeplearning\lib\site-packages\spacy\data\en
You can now load the model via spacy.load('en')

完結!!





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM