欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用 Python 中的功能和庫創(chuàng)建 n-gram的過程

 更新時間:2023年09月28日 14:14:37   作者:跡憶客  
在計算語言學(xué)中,n-gram 對于語言處理、上下文和語義分析非常重要,本文將討論如何使用 Python 中的功能和庫創(chuàng)建 n-gram,感興趣的朋友一起看看吧

在計算語言學(xué)中,n-gram 對于語言處理、上下文和語義分析非常重要。它們是從令牌字符串中相鄰的連續(xù)單詞序列。

常見的 n-gram 包括 unigram、bigram 和 trigram,它們是有效的,當(dāng) n>3 時可能會遇到數(shù)據(jù)稀疏的問題。

本文將討論如何使用 Python 中的功能和庫創(chuàng)建 n-gram。

使用 for 循環(huán)在 Python 中從文本創(chuàng)建 n-gram

我們可以有效地創(chuàng)建一個 ngrams 函數(shù),該函數(shù)接受文本和 n 值,并返回一個包含 n-gram 的列表。

為了創(chuàng)建這個函數(shù),我們可以分割文本并創(chuàng)建一個空列表(output)來存儲 n-gram。我們使用 for 循環(huán)遍歷 splitInput 列表以遍歷所有元素。

然后將單詞(令牌)添加到 output 列表中。

def ngrams(input, num):
    splitInput = input.split(' ')
    output = []
    for i in range(len(splitInput) - num + 1):
        output.append(splitInput[i:i + num])
    return output
text = "Welcome to the abode, and more importantly, our in-house exceptional cooking service which is close to the Burj Khalifa"
print(ngrams(text, 3))

代碼輸出:

[['Welcome', 'to', 'the'], ['to', 'the', 'abode,'], ['the', 'abode,', 'and'], ['abode,', 'and', 'more'], ['and', 'more', 'importantly,'], ['more', 'importantly,', 'our'], ['importantly,', 'our', 'in-house'], ['our', 'in-house', 'exceptional'], ['in-house', 'exceptional', 'cooking'], ['exceptional', 'cooking', 'service'], ['cooking', 'service', 'which'], ['service', 'which', 'is'], ['which', 'is', 'close'], ['is', 'close', 'to'], ['close', 'to', 'the'], ['to', 'the', 'Burj'], ['the', 'Burj', 'Khalifa']]

使用 NLTK 在 Python 中創(chuàng)建 n-gram

NLTK 是一個自然語言工具包,提供了一個易于使用的接口,用于文本處理和分詞等重要資源。要安裝 nltk,我們可以使用以下 pip 命令。

pip install nltk

為了展示潛在問題,讓我們使用 word_tokenize() 方法。它可以幫助我們使用 NLTK 推薦的單詞分詞器創(chuàng)建一個令牌化的文本副本,然后再編寫更詳細(xì)的代碼。

import nltk
text = "well the money has finally come"
tokens = nltk.word_tokenize(text)

代碼輸出:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\Python\SFTP\n-gram-two.py", line 4, in <module>
    tokens = nltk.word_tokenize(text)
  File "C:\Python310\lib\site-packages\nltk\tokenize\__init__.py", line 129, in word_tokenize
    sentences = [text] if preserve_line else sent_tokenize(text, language)
  File "C:\Python310\lib\site-packages\nltk\tokenize\__init__.py", line 106, in sent_tokenize
    tokenizer = load(f"tokenizers/punkt/{language}.pickle")
  File "C:\Python310\lib\site-packages\nltk\data.py", line 750, in load
    opened_resource = _open(resource_url)
  File "C:\Python310\lib\site-packages\nltk\data.py", line 876, in _open
    return find(path_, path + [""]).open()
  File "C:\Python310\lib\site-packages\nltk\data.py", line 583, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource [93mpunkt[0m not found.
  Please use the NLTK Downloader to obtain the resource:

  [31m>>> import nltk
  >>> nltk.download('punkt')
  [0m
  For more information see: https://www.nltk.org/data.html

  Attempted to load [93mtokenizers/punkt/english.pickle[0m

  Searched in:
    - 'C:\\Users\\akinl/nltk_data'
    - 'C:\\Python310\\nltk_data'
    - 'C:\\Python310\\share\\nltk_data'
    - 'C:\\Python310\\lib\\nltk_data'
    - 'C:\\Users\\akinl\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
    - ''
**********************************************************************

上述錯誤消息和問題的原因是 NLTK 庫對于某些方法需要某些數(shù)據(jù),而我們尚未下載這些數(shù)據(jù),特別是如果這是您首次使用的話。因此,我們需要使用 NLTK 下載器來下載兩個數(shù)據(jù)模塊,punkt 和 averaged_perceptron_tagger。

當(dāng)我們使用 words() 等方法時,可以使用這些數(shù)據(jù),例如創(chuàng)建一個 Python 文件并運(yùn)行以下代碼以解決該問題。

import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')

或者通過命令行界面運(yùn)行以下命令:

python -m nltk.downloader punkt
python -m nltk.downloader averaged_perceptron_tagger

示例代碼:

import nltk
text = "well the money has finally come"
tokens = nltk.word_tokenize(text)
textBigGrams = nltk.bigrams(tokens)
textTriGrams = nltk.trigrams(tokens)
print(list(textBigGrams), list(textTriGrams))

代碼輸出:

[('well', 'the'), ('the', 'money'), ('money', 'has'), ('has', 'finally'), ('finally', 'come')] [('well', 'the', 'money'), ('the', 'money', 'has'), ('money', 'has', 'finally'), ('has', 'finally', 'come')]

示例代碼:

import nltk
text = "well the money has finally come"
tokens = nltk.word_tokenize(text)
textBigGrams = nltk.bigrams(tokens)
textTriGrams = nltk.trigrams(tokens)
print("The Bigrams of the Text are")
print(*map(' '.join, textBigGrams), sep=', ')
print("The Trigrams of the Text are")
print(*map(' '.join, textTriGrams), sep=', ')

代碼輸出:

The Bigrams of the Text are
well the, the money, money has, has finally, finally come

The Trigrams of the Text are
well the money, the money has, money has finally, has finally come

到此這篇關(guān)于在 Python 中從文本創(chuàng)建 N-Grams的文章就介紹到這了,更多相關(guān)Python 文本創(chuàng)建 N-Grams內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解讀Python條件判斷邏輯演繹優(yōu)化編程思維

    解讀Python條件判斷邏輯演繹優(yōu)化編程思維

    條件判斷是編程中的重要概念,Python語言提供了多種方式來進(jìn)行條件判斷,例如if、else、elif等,本文將深入探討Python中條件判斷的靈活應(yīng)用,結(jié)合豐富的示例代碼展示其全面性
    2024-01-01
  • 深度學(xué)習(xí)Tensorflow2.8實現(xiàn)GRU文本生成任務(wù)詳解

    深度學(xué)習(xí)Tensorflow2.8實現(xiàn)GRU文本生成任務(wù)詳解

    這篇文章主要為大家介紹了深度學(xué)習(xí)Tensorflow?2.8?實現(xiàn)?GRU?文本生成任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • django從后臺返回html代碼的實例

    django從后臺返回html代碼的實例

    這篇文章主要介紹了django從后臺返回html代碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python基于socket函數(shù)實現(xiàn)端口掃描

    python基于socket函數(shù)實現(xiàn)端口掃描

    這篇文章主要為大家詳細(xì)介紹了python基于socket函數(shù)實現(xiàn)端口掃描,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • django ajax發(fā)送post請求的兩種方法

    django ajax發(fā)送post請求的兩種方法

    這篇文章主要介紹了django ajax發(fā)送post請求的兩種方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • pytorch: tensor類型的構(gòu)建與相互轉(zhuǎn)換實例

    pytorch: tensor類型的構(gòu)建與相互轉(zhuǎn)換實例

    今天小編就為大家分享一篇pytorch: tensor類型的構(gòu)建與相互轉(zhuǎn)換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python實現(xiàn)添加圖片到word文檔中

    python實現(xiàn)添加圖片到word文檔中

    這篇文章主要介紹了python實現(xiàn)添加圖片到word文檔中方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 酷! 程序員用Python帶你玩轉(zhuǎn)沖頂大會

    酷! 程序員用Python帶你玩轉(zhuǎn)沖頂大會

    程序員用Python玩轉(zhuǎn)王思聰?shù)摹稕_頂大會》,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python opencv操作深入詳解

    Python opencv操作深入詳解

    這篇文章主要介紹了Python opencv操作深入詳解,文中整理的比較詳細(xì),有感興趣的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • Python中流程控制的高級用法盤點

    Python中流程控制的高級用法盤點

    在這篇文章中我們將全面深入地介紹?Python?的控制流程,包括條件語句、循環(huán)結(jié)構(gòu)和異常處理等關(guān)鍵部分,尤其會將列表解析、生成器、裝飾器等高級用法一網(wǎng)打盡,快跟隨小編學(xué)起來吧
    2023-05-05

最新評論