利用jieba对已爬取好的中国地名信息进行分词

import jieba
import pandas as pd
import os

定义一个获取分词结果的函数,以列表形式返回:

def get_jieba_output(corpus_dataframe):
    word_set=[] # 空列表
    for i in corpus_dataframe[0]: # 因为地名信息是数据框的第一列
        obj_list = i
        for jie in jieba.cut(obj_list,cut_all=True): 
            if len(jie) <2: # 长度小于2的词忽略掉
                pass
            else:
                if jie not in word_set: # 不添加重复项
                    word_set.append(jie)
                else:
                    pass
        word_list = obj_list.split(sep='|') # 因为原数据中省名、市名、区名等是由 | 分隔开的
        for word in word_list:
            if word not in word_set: # 不添加重复项
                word_set.append(word)
            else:
                continue
    return word_set

定义得到省及直辖市名的函数,返回一个相当于集合的列表:

def get_all_prov(corpus_dataframe):
    prov_set=[]
    for i in range(len(corpus_dataframe)):
        obj_list=corpus[0][i]
        word_list = obj_list.split(sep='|')
        prov_name = word_list[0]
        if prov_name not in prov_set:
            prov_set.append(prov_name)
        else:
            continue
    return prov_set

主函数:

if __name__ == '__main__':
    '''这是根据已爬取的中国地域信息文本,利用jieba分词工具对其进行分词 '''
    jieba_file="C:/Users/tkxlovecy99/Desktop/htmls/China_Geographic_Infomation_jieba" 
    # 创建文件夹保存接下来的各省直辖市的分词操作
    try:
        os.mkdir(jieba_file)
    except:
        pass
    
    China_Geographic_Infomation="C:/Users/tkxlovecy99/Desktop/htmls/China_Geographic_Infomation.txt" 
    # 中国地名信息文本路径
    corpus=pd.read_csv(China_Geographic_Infomation,sep='\n',header=None) 
    #读取信息以dataframe的形式保存
   
    prov_name_set = get_all_prov(corpus)
    
    for prov in prov_name_set:
        filename = jieba_file+'/'+prov+'.txt'
        print(filename)
        obj_corpus = corpus[corpus[0].str.contains(prov)]
        word_set = get_jieba_output(obj_corpus)
        for word in word_set:
            with open(filename,'a',encoding='utf8') as f:
                f.write(word)
                f.write('\n')
                f.close()    

数据情况如下:

北京市|市辖区|东城区|东华门街道办事处
北京市|市辖区|东城区|景山街道办事处
北京市|市辖区|东城区|交道口街道办事处
北京市|市辖区|东城区|安定门街道办事处
北京市|市辖区|东城区|北新桥街道办事处
北京市|市辖区|东城区|东四街道办事处
北京市|市辖区|东城区|朝阳门街道办事处
北京市|市辖区|东城区|建国门街道办事处
北京市|市辖区|东城区|东直门街道办事处
北京市|市辖区|东城区|和平里街道办事处
北京市|市辖区|东城区|前门街道办事处
北京市|市辖区|东城区|崇文门外街道办事处
北京市|市辖区|东城区|东花市街道办事处| 

最终结果如下:
分词结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值