最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用 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,它們是有效的,當 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)建一個令牌化的文本副本,然后再編寫更詳細的代碼。

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。

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

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

或者通過命令行界面運行以下命令:

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 多線程

    深入理解Python 多線程

    這篇文章主要介紹了Python 多線程的相關(guān)知識,文中講解的非常詳細,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 解析PyCharm集成GitLab代碼倉的問題

    解析PyCharm集成GitLab代碼倉的問題

    這篇文章主要介紹了PyCharm集成GitLab代碼倉的相關(guān)知識,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Pycharm如何運行.py文件的方法步驟

    Pycharm如何運行.py文件的方法步驟

    這篇文章主要介紹了Pycharm如何運行.py文件的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Android基于TCP和URL協(xié)議的網(wǎng)絡(luò)編程示例【附demo源碼下載】

    Android基于TCP和URL協(xié)議的網(wǎng)絡(luò)編程示例【附demo源碼下載】

    這篇文章主要介紹了Android基于TCP和URL協(xié)議的網(wǎng)絡(luò)編程,結(jié)合實例形式分析了Android網(wǎng)絡(luò)編程的通信原理、實現(xiàn)步驟與相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2018-01-01
  • Python實現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中棧的操作示例

    Python實現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中棧的操作示例

    這篇文章主要介紹了Python實現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中棧的操作,包括基于Python實現(xiàn)棧的定義、入棧、出棧、判斷棧空或棧滿等情況,需要的朋友可以參考下
    2017-12-12
  • Pytorch損失函數(shù)torch.nn.NLLLoss()的使用

    Pytorch損失函數(shù)torch.nn.NLLLoss()的使用

    這篇文章主要介紹了Pytorch損失函數(shù)torch.nn.NLLLoss()的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解Python開發(fā)中如何使用Hook技巧

    詳解Python開發(fā)中如何使用Hook技巧

    這篇文章主要介紹了詳解Python開發(fā)中如何使用Hook技巧,詳細的介紹了Python Hook的用法和示例,有興趣的可以了解一下
    2017-11-11
  • Python中ROS和OpenCV結(jié)合處理圖像問題

    Python中ROS和OpenCV結(jié)合處理圖像問題

    ROS通過一個叫CvBridge的功能包,將獲取的圖像數(shù)據(jù)轉(zhuǎn)換成OpenCV的格式,OpenCV處理之后,傳回給ROS進行圖像顯示(應(yīng)用),這篇文章主要介紹了Python中ROS和OpenCV結(jié)合處理圖像問題,需要的朋友可以參考下
    2022-06-06
  • Python入門指南之print()函數(shù)的N種高級用法

    Python入門指南之print()函數(shù)的N種高級用法

    這篇文章深入講解了Python中print()函數(shù)的高級用法,重點解析了其函數(shù)簽名和參數(shù)配置,文章通過豐富的代碼示例展示了print()函數(shù)的強大功能,幫助開發(fā)者突破簡單打印的局限,掌握更專業(yè)的輸出控制
    2026-06-06
  • Python自動提取郵件訂閱鏈接并解析

    Python自動提取郵件訂閱鏈接并解析

    本文介紹了一個可配置的郵件處理流水線系統(tǒng),通過多模塊協(xié)作自動從訂閱郵件中提取文章鏈接并生成AI分析報告,包含配置加載、郵件抓取、URL解析、AI分析和報告生成等核心模塊,需要的朋友可以參考下
    2026-05-05

最新評論

涿鹿县| 莱州市| 大洼县| 宿州市| 高州市| 佛山市| 平南县| 西和县| 高雄市| 太仓市| 绍兴市| 阿尔山市| 宣城市| 临朐县| 高青县| 建昌县| 永和县| 玉龙| 红原县| 荆州市| 缙云县| 斗六市| 密云县| 册亨县| 武汉市| 泗洪县| 安泽县| 九寨沟县| 阜阳市| 砚山县| 保山市| 宝丰县| 宜兰县| 长泰县| 天津市| 晋州市| 瓮安县| 南召县| 出国| 沾化县| 喀喇|