- 创意 Python 爱心代码
在编程的世界里,我们不仅可以解决复杂的问题,还能用代码表达情感。今天,我们来分享几段有趣的Python代码,通过绘制爱心图案,展示Python的创意与技术魅力。1.使用Matplotlib画爱心importnumpyasnpimportmatplotlib.pyplotasplt#生成心形曲线的数据t=np.linspace(0,2*np.pi,1000)x=16*np.sin(t)**3y=13
- 2025——》import matplotlib.pyplot as plt/如何在Jupyter Notebook中使用Matplotlib库?
明—猿
NumPyjupytermatplotlibnumpyjupyter
importmatplotlib.pyplotasplt是Python中用于导入Matplotlib库的绘图模块pyplot并设置别名为plt的标准语句。Matplotlib是一个强大的可视化库,广泛用于数据可视化、图表绘制和科学绘图。以下是关于该语句的详细说明:一、语句解析importmatplotlib.pyplotmatplotlib是基础库,pyplot是其子模块,提供类似MATLAB的绘
- Python数据可视化:使用Python创建令人惊艳的图表
master_chenchengg
pythonpythonPythonpython开发IT
Python数据可视化:使用Python创建令人惊艳的图表I.可视化的力量:为什么一张好图胜过千言万语II.工欲善其事必先利其器:选择合适的Python可视化库Matplotlib入门:打造你的第一张图表Seaborn的魅力:更美观、更统计学友好的绘图Plotly互动式图表:让你的数据动起来Bokeh与GeoPandas:探索地理空间数据的新维度III.从零开始:一步步教你构建基本图表散点图的艺术
- 2.线性神经网络--Softmax回归
温柔济沧海
深度学习神经网络回归人工智能
2.1从零实现Softmax回归#数据集导入importtorchimporttorchvisionfromtorchvisionimporttransformsimportmatplotlib.pyplotaspltfromtqdmimporttqdmfromtorch.utils.dataimportDataLoader#####################################
- 【零基础学AI】第27讲:注意力机制(Attention) - 机器翻译实战
1989
0基础学AI人工智能机器翻译自然语言处理pythontensorflow机器学习神经网络
本节课你将学到理解注意力机制的核心思想掌握注意力计算的数学原理实现基于注意力机制的Seq2Seq模型构建英语到法语的神经翻译系统开始之前环境要求Python3.8+需要安装的包:tensorflow==2.8.0numpy==1.21.0matplotlib==3.4.0pandas==1.3.0前置知识RNN/LSTM原理(第26讲)序列数据处理(第26讲)自然语言处理基础(第14讲)核心概念为
- 两个场景的车辆相似度评估并画图(弗雷歇距离)
疑问:是否有必要normalize?(待解决)importmathimportnumpyasnpimportpandasaspdimporttorchfrommatplotlibimportpyplotaspltfromshapesimilarityimportshape_similarity,procrustes_normalize_curve,find_procrustes_rotation_
- Aletheia 情感智能模型:完整实现
Aletheia情感智能模型,整合所有核心模块并解决之前指出的问题。这个实现包含完整的神经动力学系统、多模态情感融合、伦理约束场和量子意识接口。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.integrateimportodeintfromsklearn.decompositionimportPCAimporttorchimporttor
- 最小二乘法(OLS)python 实践
参考链接:1,基本原理:https://zhuanlan.zhihu.com/p/1492809412,python实现:https://zhuanlan.zhihu.com/p/22692029实现结果线性回归:#--coding:utf-8--#简单线性回归demoimportnumpyasnpimportmatplotlib.pyplotaspltimportstatsmodels.apia
- 1.线性神经网络--线性回归
温柔济沧海
深度学习神经网络线性回归python
1.1从零实现线性回归importrandomimporttorch#fromd2limporttorchasd2limportmatplotlib.pyplotaspltdeftrain_data_make(batch_size,X,y):num_examples=len(X)idx=list(range(num_examples))#生成0-999random.shuffle(idx)#样本需
- 图像分割技术详解:从原理到实践
lanjieying
本文还有配套的精品资源,点击获取简介:图像分割是图像处理领域将图像分解为多个区域的过程,用于图像分析、特征提取等。文章介绍了图像分割的原理,并通过一个将图像划分为2*4子块的示例,展示了如何使用Python和matplotlib库中的tight_subplot函数进行图像分割和展示。文章还探讨了图像分割在不同领域的应用,以及如何在机器学习项目中作为数据预处理步骤。1.图像分割基本概念在图像处理领域
- 使用 Bank Churn 数据集进行二元分类
一、前言分类任务:预测客户是继续使用其帐户还是关闭帐户(例如,流失)项目地址:https://www.kaggle.com/competitions/playground-series-s4e1二、具体步骤(一)数据导入与预览importpandasaspdimportnumpyasnpimportmatplotlib.pylabaspltimportseabornassnsfromsklearn
- Seaborn 教程
froginwe11
开发语言
Seaborn教程引言Seaborn是一个强大的Python数据可视化库,它建立在Matplotlib的基础上,专门用于统计图形的绘制。Seaborn提供了一系列的绘图功能,使得统计数据的可视化变得更加简单和直观。本文将为您提供一个全面的Seaborn教程,帮助您快速掌握其基本用法和高级技巧。安装与导入在开始之前,请确保您的Python环境中已经安装了Seaborn和Matplotlib。您可以使
- elkai库高效求解旅行商(TSP)问题(Pycharm23.01)
一九天虚
pythontsp问题旅行商问题
技术文档摘要简介本技术文档描述了一个基于elkai库实现的旅行商问题(TSP)求解与可视化工具,用于计算给定城市坐标的最优路径并展示结果。以下是核心功能与技术实现要点:1.核心功能TSP求解:通过elkai库高效求解城市坐标的最优访问顺序,最小化总路径成本。路径可视化:基于Matplotlib绘制路径图,动态标注起点、城市序号及路径走向。结果分析:输出路径总成本(目标值)及城市
- 23.5.15---在python中读取excel表格数据并可视化
多一点灵性
pythonmatplotlib开发语言机器学习
目录1.在python中通过以下代码可以防止运行结果出现中文乱码的情况(如画图时)2.在将excel表格文件中的数据读取出来,并将其中的两列数据作为行列坐标用图画出来2.1设置坐标轴显示的刻度及范围3.在PythonConsole清除运行的控制台数据使用:1.在python中通过以下代码可以防止运行结果出现中文乱码的情况(如画图时)##设置字符集,防止中文乱码importmatplotlibasm
- JuPyter(IPython) Notebooks中使用pip安装Python的模块
weixin_34218890
开发工具python人工智能
问题描述:没有带GPU的电脑,搞深度学习不是耍流氓嘛,我网上看到有个云平台,免费使用了一下,小姐姐很热情。使用过程如下:他们给的接口是Jupyter编辑平台,我就在上面跑了一个小例子。tensorflow和python环境是他们配置好的,不过我的例子中需要导入matplotlib.pylot模块。可是他们没有提供,怎么办呢?网上查了一下啊解决方法:采用如下方法:importpipdefMyPipi
- Python scikit-learn 【机器学习库】全面讲解
让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》scikit-learn(简称sklearn)是Python最流行的机器学习库之一,提供简单高效的数据挖掘和数据分析工具。它基于NumPy、SciPy和Matplotlib构建,广泛应用于工业界和学术界。核心优势统一API设计:所有模型使用一致的接口(fit()、predict()、score())丰富的算法:覆
- Day.49
m0_64714591
机器学习深度学习人工智能
cbam训练:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimportdatasets,transformsfromtorch.utils.dataimportDataLoaderimportmatplotlib.pyplotaspltimportnumpyasnpplt.rcParams["font.fa
- DAY 51 复习日
忧陌606
Python打卡python
作业:day43的时候我们安排大家对自己找的数据集用简单cnn训练,现在可以尝试下借助这几天的知识来实现精度的进一步提高(一)Day43代码importosimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimporttorchimporttorch.nnasnnimporttorch.optimasoptimfromtorch.
- Day51 复习日-模型改进
cylat
python打卡机器学习人工智能python神经网络深度学习
day43对自己找的数据集用简单cnn训练,现在用预训练,加入注意力等importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimportdatasets,transforms,modelsfromtorch.utils.dataimportDataLoader,random_splitimportmatplotlib
- PyCharm运行后出不了图,如何解决?
我不是哆啦A梦
pycharm编程技术pycharmpythonide
如果PyCharm运行后出不了图,如下图所示图1或许,你可以尝试以下几种方法:(1)检查你的代码是否正确,比如使用Matplotlib库时,是否有以下代码:importmatplotlib.pyplotaspltplt.show()#显示图像(2)检查PyCharm的设置中图像显示。图2(3)上述步骤均未能解决问题的话,尝试切换Matplotlib的后端渲染引擎,即在代码开头加上以下代码:from
- Python训练营-Day40
m0_72314023
python开发语言
importtorchimporttorch.nnasnnimporttorch.optimasoptimfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportMinMaxScalerimporttimeimportmatplotlib.pyplotaspltfromtqdmimporttqd
- Python训练营-Day18
importpandasaspdimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings("ignore")plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes
- Python训练营-Day20
importpandasaspdimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings("ignore")plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes
- 数字图像处理第二次实验
愚戏师
数字图像处理python图像处理
实验三技术点分析根据实验要求,需要实现以下图像空间域滤波技术:噪声生成:高斯噪声椒盐噪声空间域滤波:均值滤波(3×3,5×5,7×7)中值滤波(3×3,5×5,7×7)最大值滤波最小值滤波图像处理流程:读取原始图像添加噪声(高斯/椒盐)应用各种滤波器可视化对比结果完整示例代码importcv2importnumpyasnpimportmatplotlib.pyplotaspltfrommatplo
- 【零基础学AI】第22讲:PyTorch入门 - 动态图计算与图像分类器实战
1989
0基础学AI人工智能pytorchpython机器学习sklearn深度学习
本节课你将学到理解PyTorch的核心概念和优势掌握张量(Tensor)的基本操作学会使用动态计算图构建神经网络实现一个完整的图像分类器项目训练模型并进行预测开始之前环境要求Python3.8+建议使用GPU(可选,CPU也能运行)内存:至少4GB需要安装的包#CPU版本(推荐新手)pipinstalltorchtorchvisionmatplotlibpillow#GPU版本(如果有NVIDIA
- day 58 python打卡
作业:对太阳黑子数量数据集用arima完成流程1.导入原始数据,并可视化#导入必要的库importpandasaspdimportmatplotlib.pyplotaspltfromstatsmodels.tsa.stattoolsimportadfullerfromstatsmodels.graphics.tsaplotsimportplot_acf,plot_pacffromstatsmode
- padans取某列指定数据
苏黎caius
我的pandas使用日记pandaspython数据分析
padans取某列指定数据我的pandas使用日记一、pandas是什么?pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库(当然,下面是示例,用到什么引什么,用不到numpy啥的就别引了)代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportseabor
- Python 借助 Matplotlib 绘制分形图形的诀窍
Python编程之道
pythonmatplotlib信息可视化ai
Python借助Matplotlib绘制分形图形的诀窍关键词:Python,Matplotlib,分形图形,递归算法,数据可视化,数学艺术,计算机图形学摘要:本文深入探讨了使用Python和Matplotlib库绘制分形图形的核心技术。从分形数学原理入手,详细解析了多种经典分形图形的生成算法,包括曼德勃罗集、朱利亚集、科赫雪花、谢尔宾斯基三角形等。文章提供了完整的Python实现代码,结合Matp
- Python 爬虫实战:微博话题讨论数趋势爬取与分析全流程
西攻城狮北
python爬虫开发语言
1.项目背景与目标微博话题(#话题#)是社交媒体舆情监测、品牌营销、热点追踪的重要数据源。本实战要完成以下目标:爬取指定话题在7天内的讨论数、阅读量、热搜排名等关键指标。将数据存入MySQL,并每日增量更新。用Pandas+Matplotlib绘制趋势图,直观呈现热度变化。基于SnowNLP做情感倾向分析,输出正面/负面占比。生成一份可分享的HTML可视化报告。2.环境搭建与依赖2.1安装核心库p
- 【SNN脉冲神经网络2】AdEx神经网络软件仿真
XvnNing
SNN脉冲神经网络神经网络人工智能深度学习
本文使用AdEx神经元搭建一个完整的神经网络来进行生物神经脉冲现象的仿真。主要的目的是为了验证数学原理,因此只调用的numpy函数包。对应的代码例程如下:1.导入所需的Python函数库importnumpyasnpimportmatplotlib.pyplotaspltimportreimportos2.定义均值函数以及一些常用函数defbin_data(data):try:returnnp.m
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache