csv中文文字分類和匯出需要的行

2021-10-07 10:09:41 字數 2589 閱讀 5329

講的比較詳細。

messages = jieba.lcut(processed_data)

def

process_data

(data_line)

:# 對資料進行一些預處理,去除一些符號,空格

data = data_line.replace(

' ','')

# 去除空格的,現在不知道有沒有用,就先留著

pattern = re.

compile

("[^\u4e00-\u9fa5^,^.^!^,^?^a-z^a-z^0-9]"

)# 只保留中英文,數字,一些符號

line = re.sub(pattern,

'', data)

# 把文字中匹配到的字元,用空字元代替

processed_data =

''.join(line.split())

# 去除空白

return processed_data # 返回處理後的資料

defstop_words_lists

(filepath)

: stop_word =

[line.strip(

)for line in

open

(filepath, encoding=

'gbk'

).readlines()]

return stop_word

keywords = jieba.analyse.extract_tags(all_data, topk=

500, withweight=

true

)

with

open

('keywords_dictionary.csv'

,'w'

)as f:

[f.write(

',\n'

.format

(key, value)

)for key, value in keywords_dictionary.items()]

with

open

('keywords_dictionary.csv')as

file

: key =

reader = csv.dictreader(

file

)# key = dict(zip(reader['key'], reader['val']))

for row in reader:

key.setdefault(row[

'key'],

)'val'

])

完了之後,就可以開始做交集了。下面的**就是篩選資料,並且把資料輸出到乙個csv檔案中方便檢視。我還加了個計數器,看看篩選出了多少個資料。

def

select_data

(complex_text)

: f =

open

('data.csv'

,'w'

, newline='')

texts =

[os.path.join(complex_text, f)

for f in os.listdir(complex_text)

] count =

0for text in texts:

all_data =

''# all_data的目的是輸出這個檔案分詞後的所有內容,方便進行詞頻統計

with

open

(text, encoding=

'utf-8'

)as t:

for line in t.readlines():

contents = line

backup = line

processed_data = process_data(contents)

message = jieba.lcut(processed_data)

# 中文分詞,把分詞後的結果存入messages

# print(message)

keywords_dictionary = key

a =set(keywords_dictionary.keys())

b =set(message)

iflen

(a & b)

>=3:

count = count +

1print

(backup.strip(),

file

=f)print

(count)

最後得到的結果就是這樣,從400w條資料變成了5000多條,儘管如此,輸出的資料仍有部分是我們不需要的,可以手動剔除。

此外,通過機器學習的監督學習的樸素貝葉斯分類器也可以對文字分類,而且效果會比我這種方法好。貝葉斯分類器我也在學習中,到時候會做補充文件。

NLP 中文文字分類 詳細

實現如下customprocessor class customprocessor dataprocessor def get train examples self,data dir return self.create examples self.read tsv os.path.join da...

使用Thuctc進行中文文字分類應用

public static void createmodel int kind,string bootpath public void runclasstrainandtest int kind,double train per,double test per,int symbol 將儲存好的模型拿...

python實現中文文字分句的例子

對於英文文字分句比較簡單,只要根據終結符 劃分就好,中文文字分句看似很簡單,但是實現時會遇到很多麻煩,尤其是處理社交 資料時,會遇到文字格式不規範等問題。下面 針對一段一段的短文本組成了文件分句 imporwww.cppcns.comt re def cut sent infile,outfile ...