今天主要做关键词的提取和机器学习方面的学习
关键词提取调用了百度的api接口进行自然语言的处理,但是可能是我数据的原因,有好多提取不成功还不是太满意
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- import codecs import json import requests APIKey='' SecretKey='' list = [] #创建请求url def get_url(): url=0 #通过API Key和Secret Key获取access_token AccessToken_url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(APIKey,SecretKey) res = requests.post(AccessToken_url)#推荐使用post json_data = json.loads(res.text) #print(json.dumps(json_data, indent=4, ensure_ascii=False)) if not json_data or 'access_token' not in json_data: print("获取AccessToken的json数据失败") else: accessToken=json_data['access_token'] #将得到的access_token加到请求url中 url='https://aip.baidubce.com/rpc/2.0/nlp/v1/keyword?charset=UTF-8&access_token={}'.format(accessToken) return url # 提取项目名称 def diqu(): f = codecs.open('jianjei.txt', mode='r', encoding='utf-8') # 打开txt文件,以‘utf-8’编码读取 line = f.readline() # 以行的形式进行读取文件 while line: a = line.split() b = a[0:1] # 这是选取需要读取的位数 list.append(b) # 将其添加在列表之中 line = f.readline() f.close() #创建请求,获取数据 def get_tag(url,title,content): tag=''#存储得到的关键词 #创建Body请求 body={ "title": title, "content":content } body2 = json.dumps(body)#将字典形式的数据转化为字符串,否则报错 #创建Header请求 header={ 'content-type': 'application/json' } res = requests.post(url,headers=header,data=body2)# 推荐使用post json_data = json.loads(res.text) if not json_data or 'error_code' in json_data: #print(json.dumps(json_data, indent=4, ensure_ascii=False)) print("获取关键词的Json数据失败") with open('guanjianzi.txt', 'a+', encoding="utf-8") as q: q.write(" ") else: #print(json.dumps(json_data, indent=4, ensure_ascii=False)) for item in json_data['items']: tag=tag+item['tag']+' ' tags=tag.strip()#去除前后空格 print(tags) with open('guanjianzi.txt', 'a+', encoding="utf-8") as q: q.write(tags+" ") return tags if __name__ == '__main__': diqu() url = get_url() title = '关键词提取和分析' for i in list: get_tag(url, title, i)