当前位置: 首页 > news >正文

网站建设面授班网站开发的重难点

网站建设面授班,网站开发的重难点,wordpress文章模板插件,万网官网域名注册多少钱把一篇pdf论文解析后,放入es数据库中,建立倒排索引表,并实现简单搜索。 1、pdf论文解析(英文) 安装pdf解析包 pip install pdfminer.sixdef extract_text_from_pdf(filename, page_numbersNone, min_line_length1):从pdf文件中提取文字:pa…

把一篇pdf论文解析后,放入es数据库中,建立倒排索引表,并实现简单搜索。

1、pdf论文解析(英文)

安装pdf解析包

pip install pdfminer.six
def extract_text_from_pdf(filename, page_numbers=None, min_line_length=1):'''从pdf文件中提取文字:param filename: pdf文件:param page_numbers: 指定页码,list:param min_line_length: 文本最小分隔长度:return:'''paragraphs = []buffer = ''full_text = ''# 提取全部文本for i, page_layout in enumerate(extract_pages(filename)):if page_numbers is not None and i not in page_numbers:continuefor element in page_layout:if isinstance(element, LTTextContainer):full_text += element.get_text() + '\n'# 按空行分隔,将文本重新组织成段落lines = full_text.split('\n')for text in lines:if len(text) >= min_line_length:buffer += (' ' + text) if not text.endswith('-') else text.strip('-')elif buffer:paragraphs.append(buffer)buffer = ''if buffer:paragraphs.append(buffer)return paragraphs

2、关键字提取

nltk安装见nltk安装与使用

import re
from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwordsdef keywords(text):'''提取文本关键字(简化版):param text: 一段字符串:return:'''# 提取所有字母数字,并替换所有非字母数字的字符为空格no_symbols = re.sub(r'[^a-zA-Z0-9\s]', ' ', text)# 分词word_tokens = word_tokenize(no_symbols)# 去停用词stop_words = set(stopwords.words('english'))filtered_words = [w for w in word_tokens if not w.lower() in stop_words]# 取词根ps = PorterStemmer()key_words = [ps.stem(w) for w in filtered_words]return ' '.join(key_words)

3、创建Elasticsearch连接,注意添加证书

Elasticsearch安装见elasticsearch安装与使用(1)-使用docker安装Elasticsearch

from elasticsearch import Elasticsearch, helpers
# 创建Elasticsearch连接
es = Elasticsearch(hosts=['https://localhost:9200'],  # 服务地址与端口basic_auth=("elastic", "N-sf6R*O0Ur344otTfzc"),  # 用户名,密码ca_certs="/Users/sunwenjun/data/elastic8/http_ca.crt"  # 证书
)

4、建立倒排索引库

def add_data_to_es(index_name="test_index", text_list=["text1","text2"]):'''建立索引,并往索引里添加数据:param index_name: 定义索引名称param paragraphs: 需要检索的文本列表  :return:'''# 如果索引已存在,删除它if es.indices.exists(index=index_name):es.indices.delete(index=index_name)# 创建索引es.indices.create(index=index_name)# 灌库指令actions = []for text in text_list:action = {"_index": index_name,"_source": {"keywords": keywords(text),"text": text}}actions.append(action)# 文本灌库res = helpers.bulk(es, actions)return res# 往es里添加数据
index_name = "index_test"
add_data_to_es(index_name, paragraphs)

索引库可视化见elasticsearch安装与使用(3)-索引库可视化

5、实现搜索

def search(index_name, query, top_n=3):'''查询:param index_name::param query::param top_n::return:'''search_query = {"match":{"keywords": keywords(query)}}search_res = es.search(index=index_name, query=search_query, size=top_n)results = [hit["_source"]["text"] for hit in search_res["hits"]["hits"]]return resultsquery = "retrieval "
results = search(index_name, query, 5)
for res in results:print(res)

5、完整代码

esdemo-01

参考

无需重新学习,使用 Kibana 查询/可视化 SLS 数据

http://www.yayakq.cn/news/37763/

相关文章:

  • 数据分析网站怎么做wordpress生成卡密
  • 2018做分享网站建设网站去工信部备案需要什么资料
  • 做娱乐性手机网站一般网站的跳出率
  • 徐州cms建站大量情侣网名网站
  • 群晖做网站需要备案吗创建一个网页多少钱
  • 江西网站备案流程wordpress是什么东西
  • 怎么设置网站标题广东省有多少个市
  • 网站销户说明建设银行对账单查询网站
  • 查询网站相关网址重庆市建设工程节能中心网站
  • 关于网站建设的请示怎样做微商网站
  • 绵阳微信网站wordpress描述插件
  • 网站换源码如何保留以前的文章中国企业信用信息网官网
  • 制作网站过程如何进行域名注册
  • 搭建网站教程视频wordpress 同步es
  • 会qt怎么做网站伊春市建设局网站
  • 建设银行网站公告网站设计用什么软件实现
  • 生活分类信息网站源码网站在哪里
  • 福州建站免费模板哈尔滨精品建站
  • 网站怎么做平台郑州营销网站
  • 济南响应式网站建设上海seo网站排名优化公司
  • 杰奇怎么做网站地图常德百度推广运营
  • dedecms做网站最新百度关键词排名
  • 网站后台密码忘记了怎么办h5制作软件支持什么格式输出
  • 做电影ppt模板下载网站做网站需要到什么技术
  • 网站的内容和功能手机视频转码vue
  • 南昌网站开发建设北京网站建设 知乎
  • 青岛商媒做网站怎么样福州建设网站设计
  • 视频剪辑素材免费网站电子科技网站建设
  • 贵阳市观山湖区建设局网站便宜购物网站大全
  • 东城区网站建设公司网站网址更新了怎么查