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

哈尔滨seo服务免费优化关键词

哈尔滨seo服务,免费优化关键词,电商网站推广渠道,网站建设 招聘需求我们基于python代码#xff0c;使用PyQt5创建图形用户界面#xff08;GUI#xff09;#xff0c;同时支持中英文两种语言的文本论文文献关键信息提取。 PyQt5#xff1a;用于创建GUI应用程序。 jieba#xff1a;中文分词库#xff0c;用于中文文本的处理。 re#xff… 我们基于python代码使用PyQt5创建图形用户界面GUI同时支持中英文两种语言的文本论文文献关键信息提取。 PyQt5用于创建GUI应用程序。 jieba中文分词库用于中文文本的处理。 re正则表达式模块用于文本清理和句子分割。 numpy提供数值计算能力如数组操作、矩阵运算等主要用于TextRank算法的实现。 import sys import re import jieba import numpy as np from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,QHBoxLayout, QTextEdit, QPushButton, QLabel,QMessageBox, QSpinBox, QFileDialog, QComboBox) from PyQt5.QtCore import Qtclass TextRankSummarizer:def __init__(self, languagechinese):self.language languageself.stopwords self.load_stopwords()# 初始化jieba中文分词器if language chinese:jieba.initialize()def load_stopwords(self):内置停用词表if self.language chinese:return {的, 了, 在, 是, 我, 有, 和, 就, 不, 人, 都, 一, 一个, 也, 要}else: # 英文停用词return {a, an, the, and, or, but, if, is, are, of, to, in, on}def preprocess_text(self, text):文本预处理# 清洗特殊字符text re.sub(r[^\w\s。.?], , text)# 分句处理if self.language chinese:sentences re.split(r[。], text)else:sentences re.split(r[.!?], text)return [s.strip() for s in sentences if len(s) 2]def calculate_similarity(self, sentence, other_sentence):计算句子相似度words1 [w for w in (jieba.cut(sentence) if self.language chinese else sentence.lower().split())if w not in self.stopwords]words2 [w for w in(jieba.cut(other_sentence) if self.language chinese else other_sentence.lower().split())if w not in self.stopwords]# 使用Jaccard相似度intersection len(set(words1) set(words2))union len(set(words1) | set(words2))return intersection / union if union ! 0 else 0def textrank(self, sentences, top_n5, damping_factor0.85, max_iter100):TextRank算法实现similarity_matrix np.zeros((len(sentences), len(sentences)))# 构建相似度矩阵for i in range(len(sentences)):for j in range(len(sentences)):if i ! j:similarity_matrix[i][j] self.calculate_similarity(sentences[i], sentences[j])# 归一化矩阵row_sum similarity_matrix.sum(axis1)normalized_matrix similarity_matrix / row_sum[:, np.newaxis]# 初始化得分scores np.ones(len(sentences))# 迭代计算for _ in range(max_iter):prev_scores np.copy(scores)for i in range(len(sentences)):scores[i] (1 - damping_factor) damping_factor * np.sum(normalized_matrix[i, :] * prev_scores)if np.linalg.norm(scores - prev_scores) 1e-5:break# 获取重要句子索引ranked_indices np.argsort(scores)[::-1][:top_n]return sorted(ranked_indices)def summarize(self, text, ratio0.2):生成摘要sentences self.preprocess_text(text)if len(sentences) 3:return 文本过短无法生成有效摘要top_n max(1, int(len(sentences) * ratio))important_indices self.textrank(sentences, top_ntop_n)# 按原文顺序排列selected_sentences [sentences[i] for i in sorted(important_indices)]# 中文使用句号连接英文使用.连接separator 。 if self.language chinese else . return separator.join(selected_sentences) (。 if self.language chinese else .)class MainWindow(QMainWindow):def __init__(self):super().__init__()# 初始化摘要器self.summarizer TextRankSummarizer()# 界面设置self.setup_ui()def setup_ui(self):self.setWindowTitle(TextRank文本摘要工具)self.setGeometry(100, 100, 1000, 800)main_widget QWidget()layout QVBoxLayout()# 输入区self.input_text QTextEdit()self.input_text.setPlaceholderText(在此粘贴需要摘要的文本建议500字以上...)# 控制区control_layout QHBoxLayout()self.ratio_spin QSpinBox()self.ratio_spin.setRange(5, 50)self.ratio_spin.setValue(20)self.ratio_spin.setSuffix(%)self.lang_combo QComboBox()self.lang_combo.addItems([中文, 英文])self.summarize_btn QPushButton(生成摘要)self.import_btn QPushButton(导入文件)self.clear_btn QPushButton(清空)control_layout.addWidget(QLabel(摘要比例))control_layout.addWidget(self.ratio_spin)control_layout.addWidget(QLabel(语言))control_layout.addWidget(self.lang_combo)control_layout.addWidget(self.import_btn)control_layout.addWidget(self.summarize_btn)control_layout.addWidget(self.clear_btn)# 输出区self.output_text QTextEdit()self.output_text.setReadOnly(True)# 布局组合layout.addWidget(QLabel(输入文本))layout.addWidget(self.input_text)layout.addLayout(control_layout)layout.addWidget(QLabel(摘要结果))layout.addWidget(self.output_text)main_widget.setLayout(layout)self.setCentralWidget(main_widget)# 信号连接self.summarize_btn.clicked.connect(self.generate_summary)self.import_btn.clicked.connect(self.import_file)self.clear_btn.clicked.connect(self.clear_content)self.lang_combo.currentTextChanged.connect(self.change_language)def change_language(self, lang):self.summarizer TextRankSummarizer(chinese if lang 中文 else english)def generate_summary(self):text self.input_text.toPlainText().strip()if not text:QMessageBox.warning(self, 输入错误, 请输入需要摘要的文本)returnratio self.ratio_spin.value() / 100summary self.summarizer.summarize(text, ratio)self.output_text.setPlainText(summary)def import_file(self):path, _ QFileDialog.getOpenFileName(self, 打开文本文件, ,文本文件 (*.txt);;所有文件 (*.*))if path:try:with open(path, r, encodingutf-8) as f:self.input_text.setPlainText(f.read())except Exception as e:QMessageBox.critical(self, 错误, f文件读取失败\n{str(e)})def clear_content(self):self.input_text.clear()self.output_text.clear()if __name__ __main__:app QApplication(sys.argv)window MainWindow()window.show()sys.exit(app.exec_())
http://www.hkea.cn/news/14559742/

相关文章:

  • 茌平做创建网站公司线上做笔记的网站
  • 衡水做网站哪家好网站建设服务合同 律师
  • 广州市增城建设局网站饰品网站建设规划书
  • 莱芜网站优化平台如何去掉wordpress作者链接
  • 深圳松岗 网站建设网站设计的建议
  • 网站被收录后又被提出了91手机用哪个浏览器
  • 石家庄网站seo顾问php 网站
  • 网站平台需要做无形资产吗 怎么做安徽通皖建设工程有限公司网站
  • 网站开发公司排行榜2022年房地产太惨了
  • 电商网站建设计划书WordPress添加网页背景图片
  • 深圳市建网站邵阳相亲网站
  • 无锡住房建设网站建设响应式网站
  • 苏州化妆品网站建设中国电信六大外包公司
  • 安阳网站建设哪里最好wordpress显示自定义分类文章数量
  • 岳阳手机网站建设高端企业网站开发
  • 电商网站建设最好的公司天津百度关键词推广公司
  • 进入建设银行的网站就打不了字义乌代加工手工活官网
  • 一个ip上绑多个网站建筑工程自我鉴定300字
  • 南通网站建设果尔做网站一定要效果图吗
  • 网站维护提示怎么做外贸网上营销的途径有哪些
  • 想自己做网站吗北京正规做网站公司
  • 如何将数据库导入网站北京中高端网站建设公司
  • 国外免费搭建网站源码嘉兴网站建设技术开发
  • 怎么用h5网站做动效外贸网站怎么建设
  • 酉阳网站建设长春市建设信息网站
  • 网站建设有什么方法连接数据库淘宝客做网站链接
  • 杭州做公司网站的公司wordpress后台添加菜单
  • 动漫网站开发网页设计入门案例
  • 网站项目管理系统宁波网站seo报价
  • 东营网站建设方案广告设计公司网站源码