国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化

這篇具有很好參考價(jià)值的文章主要介紹了Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

說(shuō)明

向量化將會(huì)是下一階段演進(jìn)的目標(biāo)。

在過(guò)去的實(shí)踐中,向量或者矩陣其實(shí)是最貼近工具端的。

以sklearn為例,雖然原始數(shù)據(jù)可能還是自然語(yǔ)言,但是在最終執(zhí)行 fit或者predict之前,數(shù)據(jù)一般都轉(zhuǎn)為了矩陣形態(tài)(numpy)。也就是說(shuō),在pandas(原始數(shù)據(jù))和最終結(jié)果(predict result)之間,是(短暫且必然)存在過(guò)矩陣的。

后來(lái),應(yīng)該是有過(guò)類似以圖搜圖類的應(yīng)用,向量化且持久化在數(shù)據(jù)庫(kù)中開(kāi)始興起。

之后,大規(guī)模向量化且持久化是從大語(yǔ)言模型爆火開(kāi)始的:因?yàn)榇罅康闹虚g結(jié)果需要重算(為向量),那么不如將中間結(jié)果固定住,需要的時(shí)候調(diào)用存儲(chǔ)就可以了。

所以一個(gè)明顯的趨勢(shì)是,如果某項(xiàng)業(yè)務(wù)需要長(zhǎng)期的演進(jìn),就需要大量的迭代計(jì)算。這些計(jì)算很難直接在原始數(shù)據(jù)上進(jìn)行,所以將原始數(shù)據(jù)保存為向量既是一種規(guī)范(即進(jìn)行特征與計(jì)算機(jī)語(yǔ)言的轉(zhuǎn)譯),同時(shí)也是迭代計(jì)算的前提。其重要性和必要性應(yīng)該無(wú)需再進(jìn)行討論。

在當(dāng)前的工作中,我恰好需要對(duì)文本進(jìn)行更深入的處理 ,所以借著機(jī)會(huì),邊做邊梳理。

PS: 大約在幾年前,甚至我開(kāi)始用Bert時(shí),我并沒(méi)有意識(shí)到這個(gè)領(lǐng)域的突破會(huì)如此具有開(kāi)創(chuàng)性,我認(rèn)為至少相當(dāng)長(zhǎng)一段水平,這個(gè)領(lǐng)域會(huì)保持在差不多的狀態(tài)。所以過(guò)去我一直是抱著以用為主,適當(dāng)了解的心態(tài)做這個(gè)領(lǐng)域的事?,F(xiàn)在這個(gè)觀念轉(zhuǎn)變了,以transformer結(jié)構(gòu)為基礎(chǔ)的深度學(xué)習(xí)已經(jīng)證明可以做到足夠商業(yè)化的效果。對(duì)這個(gè)領(lǐng)域進(jìn)行深入的研究和開(kāi)發(fā)–即使是從現(xiàn)在開(kāi)始–也會(huì)帶來(lái)巨大的收益。

內(nèi)容

1 word2vec

早前有整理過(guò)word2vec的一些資料(之后要review),這里只是把基本的概念稍微強(qiáng)化一下。

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
首先,在2018年以前,word2vec還算是比較主流的,是不是bert的出現(xiàn)撼動(dòng)了它的地位?

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
其次,word2vec的思想,也就是將單詞轉(zhuǎn)為向量,且可進(jìn)行語(yǔ)義度量(近義詞距離近,反義詞距離遠(yuǎn))應(yīng)該還是一個(gè)比較不變的。

2 m3e

先來(lái)看一些實(shí)際的使用/測(cè)試結(jié)果。

首先下載模型包 m3e-base
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
然后安裝一個(gè)包
!pip3 install sentence_transformers -i https://mirrors.aliyun.com/pypi/simple/

假設(shè)我現(xiàn)在有3個(gè)query和3個(gè)answer,我需要對(duì)它們分別進(jìn)行轉(zhuǎn)換,然后計(jì)算他們之前的距離(相似度)。

先導(dǎo)入包,并對(duì)查詢進(jìn)行向量轉(zhuǎn)換

from sentence_transformers import SentenceTransformer
model = SentenceTransformer('m3e-base',cache_folder="./m3e-base")
questions = ['存文件', '讀取文件','排序']
embeddings = model.encode(questions)
array([[-0.04188242,  0.8120958 ,  0.75951165, ..., -0.7462918 ,
        -0.37102422, -1.1583616 ],
       [-0.18861888,  0.45038733,  0.7915643 , ..., -0.8806971 ,
        -0.35007524, -0.9292178 ],
       [-0.3631838 ,  0.10787209,  0.55987704, ..., -1.1905028 ,
        -1.2330985 , -0.6836705 ]], dtype=float32)

然后對(duì)答案也進(jìn)行向量轉(zhuǎn)換

answer1 = '''import json
# 文件的路徑+名稱 -> json字符串
def read_file_as_json(fpath = None ):
    # 讀取一個(gè)文件
    with open(fpath, 'r') as f:
        content = f.read()
    json_content = json.dumps(content)
    return json_content'''
answer2 = '''import json
# 存一個(gè)文件
def write_json_to_file(json_str = None, fpath = None):
    rev_content = json.loads(json_str)
    with open(fpath, 'w') as f:
        f.write(rev_content)
    return True 
'''
answer3 = '''import json
# 字符串到文件
def write_str_to_file(some_str = None, fpath = None):
    json_str = json.dumps(some_str)
    write_json_to_file(json_str, fpath)
'''

answers = [answer1, answer2, answer3]
res_embeddings = model.encode(answers)

假設(shè)現(xiàn)在計(jì)算最符合第一個(gè)查詢的結(jié)果,對(duì)應(yīng)的向量是embeddings[0], 對(duì)應(yīng)的原始查詢是「存文件」

import numpy as np
# 計(jì)算歐幾里得距離
distance1 = np.linalg.norm(embeddings[0] - res_embeddings[0])
distance2 = np.linalg.norm(embeddings[0] - res_embeddings[1])
distance3 = np.linalg.norm(embeddings[0] - res_embeddings[2])
print("歐幾里得距離:", distance1,distance2, distance3 )
歐幾里得距離: 14.339659 12.545303 13.624656

看起來(lái)與第二個(gè)答案的向量最為相似,里面有’存…文件’的類似文本。

如果要并發(fā)執(zhí)行距離計(jì)算,那么通過(guò)

# 一次計(jì)算歐式距離
distances = np.linalg.norm(embeddings[0]-res_embeddings, axis=1)
array([14.339659, 12.545303, 13.624656], dtype=float32)

如果answer集合的向量特別大,那么可以通過(guò)類似milvus這樣的向量數(shù)據(jù)庫(kù)完成查詢。其實(shí)本質(zhì)上也就是分布式并行計(jì)算向量。

這算是完成向量轉(zhuǎn)換與相似性計(jì)算的使用驗(yàn)證。

整體上說(shuō)使用還算是比較簡(jiǎn)單,效果也不錯(cuò)。但是在使用GPU計(jì)算上比較麻煩,反正我按說(shuō)明試著搞了一下,但是還是沒(méi)成功,也就算了。實(shí)際在使用CPU計(jì)算速度也還可以,這倒是說(shuō)明了向量轉(zhuǎn)換這步的計(jì)算開(kāi)銷并沒(méi)有那么大,在工業(yè)量產(chǎn)上是可行的。未來(lái)自己再開(kāi)發(fā)一版模型就好了。

再測(cè)試一下對(duì)于長(zhǎng)本文的支持,以下是一段測(cè)試文本,長(zhǎng)度大約為1000

test_txt ='''根據(jù)提供的接口文檔,ESIO(Elastic Search IO)是用于存儲(chǔ)和搜索元數(shù)據(jù)的服務(wù),它提供了一系列接口來(lái)執(zhí)行數(shù)據(jù)的存儲(chǔ)、查詢和刪除操作。以下是文檔中提到的主要接口和功能的簡(jiǎn)要說(shuō)明:

### 1. 功能簡(jiǎn)述

ESIO提供數(shù)據(jù)的存儲(chǔ)和查詢功能,主要包括以下操作:

- 連通性測(cè)試:通過(guò)訪問(wèn)`/info/`接口來(lái)測(cè)試服務(wù)是否可用。
- 狀態(tài)檢查:通過(guò)訪問(wèn)`/stat/`接口查看當(dāng)前數(shù)據(jù)庫(kù)的狀態(tài)。
- 存一條記錄:通過(guò)`/save_a_rec/`接口存儲(chǔ)一條記錄。
- 匹配查詢:使用詞進(jìn)行匹配查詢,例如按照"first_name"字段進(jìn)行匹配查詢。
- 短語(yǔ)查詢:使用短語(yǔ)進(jìn)行查詢,例如要同時(shí)滿足"rock climbing"短語(yǔ)存在才返回。

### 2. 部署方式

ESIO依賴ES數(shù)據(jù)庫(kù),使用一鍵部署方式部署。您可以執(zhí)行提供的腳本來(lái)完成部署。請(qǐng)注意,文檔中提供的腳本可能已經(jīng)過(guò)時(shí),因此建議根據(jù)實(shí)際情況進(jìn)行調(diào)整。

### 3. 請(qǐng)求說(shuō)明

文檔中提供了不同類型的請(qǐng)求說(shuō)明,包括:

- 連通性測(cè)試:通過(guò)訪問(wèn)`/info/`接口來(lái)測(cè)試連接。
- 狀態(tài)檢查:通過(guò)訪問(wèn)`/stat/`接口查看數(shù)據(jù)庫(kù)狀態(tài)。
- 存儲(chǔ)記錄:使用`/save_a_rec/`接口存儲(chǔ)一條記錄。
- 匹配查詢:使用詞進(jìn)行匹配查詢,例如按照"first_name"字段進(jìn)行匹配查詢。
- 短語(yǔ)查詢:使用短語(yǔ)進(jìn)行查詢,例如要同時(shí)滿足"rock climbing"短語(yǔ)存在才返回。

### 4. v1.1 豐富增刪改查

文檔還提到了v1.1版本的功能增強(qiáng),包括更多的增刪改查操作。這些操作包括:

- 創(chuàng)建記錄:使用`create_a_rec_with_id`接口以主鍵存入一條記錄。
- 覆蓋存入記錄:使用`index_a_rec_with_id`接口以主鍵覆蓋存入一條記錄。
- 刪除記錄:使用`del_a_rec_with_id`接口以主鍵刪除一條記錄。
- 獲取記錄:使用`get_a_rec_with_id`接口獲取一條記錄。
- 更新記錄:使用`update_a_rec_with_id`接口以主鍵覆蓋更新一條記錄。
- 批量操作:使用`bulk_opr`接口實(shí)現(xiàn)批量操作,包括創(chuàng)建、刪除、更新和索引。
- 批量獲?。菏褂胉mget_with_id_list`接口根據(jù)id批量獲取記錄。

這些功能可以幫助用戶進(jìn)行更靈活的數(shù)據(jù)操作和管理。

請(qǐng)注意,具體的請(qǐng)求和響應(yīng)參數(shù)需要根據(jù)實(shí)際使用情況和數(shù)據(jù)結(jié)構(gòu)進(jìn)行配置。文檔中提供了一些示例代碼,可供參考。'''

在原始長(zhǎng)度上乘以200倍,大約為20萬(wàn)字。

embeddings = model.encode([test_txt*200])

結(jié)果是仍然可以很快轉(zhuǎn)為768維向量,測(cè)試結(jié)束。

3 關(guān)于m3e

既然m3e的向量化可以滿足需求,這時(shí)候不妨回過(guò)頭看看這個(gè)模型本身的信息。

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言

可參考文章1

發(fā)布的公司:似乎是一家叫聞達(dá)的公司
適用的場(chǎng)景:主要是中文,少量英文的情況,支持文本相似度、文本檢索
版本:base版的相對(duì)好
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
關(guān)于幾類任務(wù)的表現(xiàn)

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
就目前而言,我更關(guān)注s2s的應(yīng)用:相似度、重復(fù)、分類。

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
注意,這里提到了m3e是基于bert模型訓(xùn)練的。
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
聯(lián)想到m3e的向量長(zhǎng)度是768,和Bert一致,這說(shuō)明了在這個(gè)長(zhǎng)度上,應(yīng)當(dāng)足以應(yīng)對(duì)一般的語(yǔ)言問(wèn)題。當(dāng)然,如果條件允許的話,用更長(zhǎng)的向量應(yīng)該也是ok的。768或者可以被視為一個(gè)下限。
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
另外transformer架構(gòu)是成功的,bert和gpt兩個(gè)家族都是基于這個(gè)基礎(chǔ)架構(gòu)衍生出來(lái)的。所以,我可以從這個(gè)架構(gòu)開(kāi)始仔細(xì)的研究,從頭開(kāi)始做。

現(xiàn)在重頭開(kāi)始做的最大好處是很多路都有人探過(guò)了,資料很多,不會(huì)走歪路。另外就是算力供應(yīng)還算是不錯(cuò),現(xiàn)在可以租算力搞。

另外,Bert家族的模型證明是比較輕的,容易并行化、工業(yè)化;GPT家族相對(duì)重一些,但是在一個(gè)較小的參數(shù)空間上也是可行的,例如6B模型,個(gè)人完全也可以搞。

最大的工作和價(jià)值則是在于:能不能對(duì)attention方法進(jìn)行更有效的設(shè)計(jì);能不能采用類似ensemable的方法,訓(xùn)練較多的小模型綜合增強(qiáng);能不能采用一個(gè)體系來(lái)進(jìn)行流水線的生成;能不能采用更好的agent來(lái)進(jìn)行自我調(diào)節(jié)。

所以下一步,就是開(kāi)始實(shí)踐,目標(biāo)是可以完全自主的重頭搭建完全可控的Bert和GPT類模型。

4 部署

4.1 本地鏡像

目前本地算力不是那么充足,不過(guò)我還是將其作為一項(xiàng)基本任務(wù)將其完成,這樣未來(lái)萬(wàn)一需要長(zhǎng)期部署的時(shí)候可以省事。

在已有的pytorch鏡像上修改,考入模型文件并建立tornado服務(wù)的文件

 m3e-base  server.py  server_funcs.py

server.py

from server_funcs import * 
import tornado.httpserver  # http服務(wù)器
import tornado.ioloop  # ?
import tornado.options  # 指定服務(wù)端口和路徑解析
import tornado.web  # web模塊
from tornado.options import define, options
import os.path  # 獲取和生成template文件路徑


# 引入模型
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('m3e-base',cache_folder="./m3e-base")

app_list = []

IndexHandler_path = r'/'
class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('【GET】This is Website for Internal API System')
        self.write('Please Refer to API document')
        print('Get got a request test')
        # print(buffer_dict)

    def post(self):
        request_body = self.request.body

        print('Trying Decode Json')
        some_dict = json.loads(request_body)
        print(some_dict)
        msg_dict = {}
        msg_dict['info'] = '【POST】This is Website for Internal API System'
        msg_dict['input_dict'] = some_dict
        self.write(json.dumps(msg_dict))
        print('Post got a request test')
IndexHandler_tuple = (IndexHandler_path,IndexHandler)
app_list.append(IndexHandler_tuple)

M3EHandler_path = r'/m3e/'
class M3EHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('【GET】文本向量化')
        self.write('Please Refer to API document')
        print('Get got a request test')

    def post(self):
        request_body = self.request.body
        input_list = json.loads(request_body)
        res_list =  model.encode(input_list)
        self.write(json.dumps(res_list.tolist()))

M3EHandler_tuple = (M3EHandler_path,M3EHandler)
app_list.append(M3EHandler_tuple)


if __name__ == '__main__':
    #
    tornado.options.parse_command_line()
    apps = tornado.web.Application(app_list, **settings)
    http_server = tornado.httpserver.HTTPServer(apps)
    define('port', default=8000, help='run on the given port', type=int)

    
    http_server.listen(options.port)
    # 單核

    # 多核打開(kāi)注釋
    # 0 是全部核
    # http_server.start(num_processes=10) # tornado將按照cpu核數(shù)來(lái)fork進(jìn)程

    # ---啟動(dòng)
    print('Server Started')
    tornado.ioloop.IOLoop.instance().start()

server_funcs.py

# 保留,用于提供server.py的引入
# 【引入時(shí)處于和GlobalFunc同級(jí)別的位置】

import json
from json import JSONEncoder
class MyEncoder(JSONEncoder):
    def default(self, obj):
        if isinstance(obj, np.integer):
            return int(obj)
        elif isinstance(obj, np.floating):
            return float(obj)
        elif isinstance(obj, np.ndarray):
            return obj.tolist()
        if isinstance(obj, datetime):
            return obj.__str__()
        if isinstance(obj, dd.timedelta):
            return obj.__str__()
        else:
            return super(MyEncoder, self).default(obj)

# 【創(chuàng)建tornado所需問(wèn)文件夾】
import os 
# 如果路徑不存在則創(chuàng)建
def create_folder_if_notexist(somepath):
    if not os.path.exists(somepath):
        os.makedirs(somepath)
    return True


m_static = os.path.join(os.getcwd(),'m_static')
m_template = os.path.join(os.getcwd(),'m_template')

create_folder_if_notexist(m_static)
create_folder_if_notexist(m_template)

settings = {
'static_path':m_static,
'template_path':m_template
}

調(diào)用

import requests as req 

questions = ['存文件', '讀取文件','排序']

res_list = req.post('http://127.0.0.1:8000/m3e/',json = questions).json()

import numpy as np 

res_arr = np.array(res_list)

這樣就完成了鏡像準(zhǔn)備,以后要用的時(shí)候起一個(gè)服務(wù)就可以了,這個(gè)服務(wù)只有一個(gè)功能:輸入文本列表,返回向量列表。

4.2 外部部署

如果短時(shí)間有大量的需求,我更情愿使用彈性的算力來(lái)解決問(wèn)題。

Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
用自己的鏡像打開(kāi)一個(gè)新容器,root用戶的秘鑰已經(jīng)允許m0主機(jī)和算網(wǎng)機(jī)登錄,這樣方便從m7拷貝模型文件過(guò)去。
其中 /root/autodl-tmp 是系統(tǒng)盤(pán)免費(fèi)30G,/root/autodl-pub 是數(shù)據(jù)盤(pán),免費(fèi)50G。

ps: 我發(fā)現(xiàn)要用pytorch2.0的容器創(chuàng)建,所以之前的那個(gè)鏡像不能用
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
步驟0:修改ssh
在.ssh下面增加秘鑰,增加后即刻生效,然后立即禁用密碼登錄

vim /etc/ssh/sshd_config
PermitRootLogin prohibit-password
MaxAuthTries 6
ClientAliveInterval 60
ClientAliveCountMax 10
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
MaxSessions 10

步驟1:將數(shù)據(jù)從m7拷貝到/root/autodl-tmp/

rsync -rvltz  -e 'ssh -p 18045'  --progress  /data/model_file/m3e-base root@connect.southb.gpuhub.com:/root/autodl-tmp/

步驟2:安裝包pip3 install sentence_transformers -i https://mirrors.aliyun.com/pypi/simple/
步驟3:將server.py和server_funcs.py也拷貝到/root/autodl-tmp/目錄下。
步驟4:?jiǎn)?dòng)服務(wù)。

┌─root@autodl-container-824347b459-10803d25:~/autodl-tmp
└─ $ python3 server.py
Server Started

autodl給了一個(gè)jupyter,可以測(cè)試
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言
鏡像是可以保存的,而且非常厚道,只算用戶額外掛載的私有數(shù)據(jù),等下次真的需要的時(shí)候再保存。
Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化,文本處理和語(yǔ)義分析,python,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-831315.html

到了這里,關(guān)于Python 文本處理和語(yǔ)義分析2 使用m3e對(duì)文本向量化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 5.Python數(shù)據(jù)分析項(xiàng)目之文本分類-自然語(yǔ)言處理

    5.Python數(shù)據(jù)分析項(xiàng)目之文本分類-自然語(yǔ)言處理

    預(yù)測(cè)類數(shù)據(jù)分析項(xiàng)目 流程 具體操作 基本查看 查看缺失值(可以用直接查看方式isnull、圖像查看方式查看缺失值missingno)、查看數(shù)值類型特征與非數(shù)值類型特征、一次性繪制所有特征的分布圖像 預(yù)處理 缺失值處理(填充)拆分?jǐn)?shù)據(jù)(獲取有需要的值) 、統(tǒng)一數(shù)據(jù)格式、特征

    2024年02月03日
    瀏覽(46)
  • 自然語(yǔ)言處理 Paddle NLP - 文本語(yǔ)義相似度計(jì)算(ERNIE-Gram)

    自然語(yǔ)言處理 Paddle NLP - 文本語(yǔ)義相似度計(jì)算(ERNIE-Gram)

    基礎(chǔ) 自然語(yǔ)言處理(NLP) 自然語(yǔ)言處理PaddleNLP-詞向量應(yīng)用展示 自然語(yǔ)言處理(NLP)-前預(yù)訓(xùn)練時(shí)代的自監(jiān)督學(xué)習(xí) 自然語(yǔ)言處理PaddleNLP-預(yù)訓(xùn)練語(yǔ)言模型及應(yīng)用 自然語(yǔ)言處理PaddleNLP-文本語(yǔ)義相似度計(jì)算(ERNIE-Gram) 自然語(yǔ)言處理PaddleNLP-詞法分析技術(shù)及其應(yīng)用 自然語(yǔ)言處理Pa

    2024年02月08日
    瀏覽(23)
  • 【自然語(yǔ)言處理】【深度學(xué)習(xí)】文本向量化、one-hot、word embedding編碼

    【自然語(yǔ)言處理】【深度學(xué)習(xí)】文本向量化、one-hot、word embedding編碼

    因?yàn)槲谋静荒軌蛑苯颖荒P陀?jì)算,所以需要將其轉(zhuǎn)化為向量 把文本轉(zhuǎn)化為向量有兩種方式: 轉(zhuǎn)化為one-hot編碼 轉(zhuǎn)化為word embedding 在one-hot編碼中,每一個(gè)token使用一個(gè)長(zhǎng)度為N的向量表示,N表示詞典的數(shù)量。 即:把待處理的文檔進(jìn)行分詞或者是N-gram處理,然后進(jìn)行去重得到詞典

    2024年01月24日
    瀏覽(18)
  • python數(shù)據(jù)分析及可視化(十六)金融量化(金融工具、金融分析、Tushare安裝使用、雙均線分析)

    python數(shù)據(jù)分析及可視化(十六)金融量化(金融工具、金融分析、Tushare安裝使用、雙均線分析)

    金融就是對(duì)現(xiàn)有資源進(jìn)行重新整合之后,實(shí)現(xiàn)價(jià)值和利潤(rùn)的等效流通。 比如小明想把手里的資金投資給小李,而小李有好的增值項(xiàng)目但是缺少資金,如果小李的項(xiàng)目創(chuàng)業(yè)成功,小明的資金就會(huì)增長(zhǎng)。 在金融市場(chǎng)中可交易的金融資產(chǎn),主要分為股票、期貨、黃金、外匯、基金

    2024年02月10日
    瀏覽(28)
  • Python進(jìn)行文本處理分析與詞云生成——以三國(guó)演義為例(含代碼講解)

    Python進(jìn)行文本處理分析與詞云生成——以三國(guó)演義為例(含代碼講解)

    ???????? 在Python中處理文本數(shù)據(jù)是一種常見(jiàn)的任務(wù),這需要使用到多種字符串操作和數(shù)據(jù)結(jié)構(gòu)。本文將詳細(xì)解讀如何調(diào)用jieba、wordcloud以及 matplotlib這些庫(kù)進(jìn)行文本處理分析與詞云制作。 ? ? ? ?? 在我們導(dǎo)入所需要的庫(kù)之前我們需要先在pycharm中下載并安裝庫(kù),步驟如下:

    2024年02月04日
    瀏覽(22)
  • 「Python|音視頻處理|場(chǎng)景案例」如何使用ffmpeg下載m3u8視頻到本地并保存成mp4

    本文主要介紹如何使用ffmpeg批量下載視頻到本地并保存成指定格式。 當(dāng)我們希望將網(wǎng)頁(yè)上的視頻下載到本地的時(shí)候,我們可能獲取到的視頻地址是指向 .m3u8 格式的,當(dāng)視頻多的時(shí)候,手動(dòng)下載并使用工具轉(zhuǎn)換格式就顯得工作量過(guò)大。 ffmpeg 是一個(gè)強(qiáng)大的音視頻處理工具,具體

    2024年02月16日
    瀏覽(34)
  • Elasticsearch:使用 ELSER 文本擴(kuò)展進(jìn)行語(yǔ)義搜索

    Elasticsearch:使用 ELSER 文本擴(kuò)展進(jìn)行語(yǔ)義搜索

    在今天的文章里,我來(lái)詳細(xì)地介紹如何使用 ELSER??進(jìn)行文本擴(kuò)展驅(qū)動(dòng)的語(yǔ)義搜索。 如果你還沒(méi)有安裝好自己的 Elasticsearch 及 Kibana,請(qǐng)參考如下的鏈接來(lái)進(jìn)行安裝: 如何在 Linux,MacOS 及 Windows 上進(jìn)行安裝 Elasticsearch Kibana:如何在 Linux,MacOS 及 Windows 上安裝 Elastic 棧中的 Kiba

    2024年02月07日
    瀏覽(25)
  • 文本分析-使用Python做詞頻統(tǒng)計(jì)分析

    文本分析-使用Python做詞頻統(tǒng)計(jì)分析

    ???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè) ???作者簡(jiǎn)介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 前言 前面我們已經(jīng)介紹了文本分析中的中文分詞和去除停用詞,這篇文章將詳細(xì)介紹分詞后

    2024年02月10日
    瀏覽(32)
  • 自然語(yǔ)言處理入門(mén):使用Python和NLTK進(jìn)行文本預(yù)處理

    文章標(biāo)題:自然語(yǔ)言處理入門(mén):使用Python和NLTK進(jìn)行文本預(yù)處理 簡(jiǎn)介 自然語(yǔ)言處理(NLP)是人工智能領(lǐng)域的一個(gè)重要分支,它致力于使計(jì)算機(jī)能夠理解、分析和生成人類語(yǔ)言。本文將介紹如何使用Python編程語(yǔ)言和NLTK(Natural Language Toolkit)庫(kù)進(jìn)行文本預(yù)處理,為后續(xù)的文本分析

    2024年02月19日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包