溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nlp中文數(shù)據(jù)預(yù)處理方法是什么

發(fā)布時間:2021-12-16 09:34:59 來源:億速云 閱讀:208 作者:iii 欄目:編程語言

這篇文章主要介紹“nlp中文數(shù)據(jù)預(yù)處理方法是什么”,在日常操作中,相信很多人在nlp中文數(shù)據(jù)預(yù)處理方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”nlp中文數(shù)據(jù)預(yù)處理方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

  數(shù)據(jù)加載(默認csv格式)

  import pandas as pd

  datas = pd.read_csv("./test.csv", header=0, index_col=0) # DataFrame

  n_datas = data.to_numpy() # ndarray 轉(zhuǎn)成numpy更好處理(個人喜好)

  去除空行

  def delete_blank_lines(sentences):

  return [s for s in sentences if s.split()]

  no_line_datas = delete_blank_lines(n_datas)

  去除數(shù)字

  DIGIT_RE = re.compile(r'\d+')

  no_digit_datas = DIGIT_RE.sub('', no_line_datas)

  def delete_digit(sentences):

  return [DIGIT_RE.sub('', s) for s in sentences]

  判斷句子形式(簡單句或者復(fù)雜句)

  STOPS = ['。', '.', '?', '?', '!', '!'] # 中英文句末字符

  def is_sample_sentence(sentence):

  count = 0

  for word in sentence:

  if word in STOPS:

  count += 1

  if count > 1:

  return False

  return True

  去除中英文標點

  from string import punctuation

  import re

  punc = punctuation + u'

  def delete_punc(sentences):

  return [re.sub(r"[{}]+".format(punc), '', s) for s in a]

  去除英文(僅留漢字)

  ENGLISH_RE = re.compile(r'[a-zA-Z]+')

  def delete_e_word(sentences):

  return [ENGLISH_RE.sub('', s) for s in sentences]

  去除亂碼和特殊符號

  使用正則表達式去除相關(guān)無用符號和亂碼

  # 該操作可以去掉所有的符號,標點和英文,由于前期可能需要標點進一步判斷句子是否為簡單句,所以該操作可以放到最后使用。鄭州做婦科檢查價格 http://www.zzkdfk.com/

  SPECIAL_SYMBOL_RE = re.compile(r'[^\w\s\u4e00-\u9fa5]+')

  def delete_special_symbol(sentences):

  return [SPECIAL_SYMBOL_RE.sub('', s) for s in sentences]

  中文分詞

  # 使用jieba

  def seg_sentences(sentences):

  cut_words = map(lambda s: list(jieba.cut(s)), sentences)

  return list(cut_words)

  # 使用pyltp分詞

  def seg_sentences(sentences):

  segmentor = Segmentor()

  segmentor.load('./cws.model') # 加載分詞模型參數(shù)

  seg_sents = [list(segmentor.segment(sent)) for sent in sentences]

  segmentor.release()

  return seg_sents

  去除停用詞

  # 停用詞列表需要自行下載

  stopwords = []

  def delete_stop_word(sentences):

  return [[word for word in s if word not in stopwords] for s in sentences]

到此,關(guān)于“nlp中文數(shù)據(jù)預(yù)處理方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

nlp
AI