nlp中文字處理的一些常用方法

2021-09-10 08:29:20 字數 1525 閱讀 1899

從sentence(str)中找到會重複出現的多位的keyword的起始位置與結束位置的索引

def get_key_idxs(sentence, keyword):

k_len = len(keyword)

res =

for i in range(len(sentence) - k_len + 1):

if sentence[i:i+k_len] == keyword:

s = str(i) + '-' +str(i+k_len)

return res

sentence = '只有小公尺公司才生成小公尺手機'

keyword = '小公尺'

get_key_idxs(sentence, keyword) # ['2-4', '9-11']

從sentence(str)中找到會重複出現的一位的keyword的索引
sentence = '只有小公尺公司才生成小公尺手機'

keyword = '小'

indx = [i for i, k in enumerate(sentence) if k == keyword] # [2,9]

計算文字間距
def text_distance(str1, str2):

m, n = len(str1), len(str2)

dp = [[0 for x in range(n+1)] for x in range(m+1)]

for i in range(m+1):

for j in range(n+1):

if i == 0:

dp[i][j] = j

elif j == 0:

dp[i][j] = i

elif str1[i-1] == str2[j-1]:

dp[i][j] = dp[i-1][j-1]

else:

dp[i][j] = 1 + min(dp[i][j-1], # insert

dp[i-1][j], # remove

dp[i-1][j-1]) # replace

return dp[m][n]

text_distance('go', 'going') # output:3

text_distance('whose', 'who') # output:2

text_distance('who', 'how') # output:2

二維list轉一維
a = [[1,2],[3,4]]

b = [i for k in l for i in k] # [1,2,3,4]

將陣列中所有0轉為1,所有1轉為0
a = [1,0,0,1,0,0,1]

for i in range(len(a)):

a[i] ^= 1 # [0, 1, 1, 0, 1, 1, 0]

滾回去做測試了,此篇停更…

NLP中文短文字處理記錄(一)

nlp短文字處理 nlp之文字清洗 nlp一些常用詞 待讀文章 第二天學習 寫 前要想好資料該用什麼格式輸出,最好在紙上畫出來,然後想如何能實現 read csv 讀取含中文的csv檔案時,encoding utf 8 或 gb18030 會遇到有的行無法讀出,增加引數error bad lines...

NLP 文字處理的小問題

參考文章 問題 搜狗預料庫的資料型別 編碼格式為 gb18030 這種文字檔案不是標準的xml檔案,沒有根節點。因此要新增根節點使該文字檔案符合xml檔案的規範 可以用xml樹操作對 象,可以用mysql載入xml資料 當資料量極大時不能用windoms開啟記事本手動新增。方法有多種 直接linux...

文字處理的方法

import jieba content 公信 幹事每月經過下屬科室都要親 代24 換機等技術性器件的安裝工作 cut all true表示精確匹配,即返回最正確的分詞情況 print jieba.cut content,cut all true print jieba.lcut content,c...