HTML基础知识学习笔记

 更新时间:2016年9月20日 18:58  点击:1407
每天紧张的生活过程中,总是忘记了记录了生活。既然创建了这个博客,就是想给自己的工作生活留下记忆,同意也希望能分享给跟我有同样生活经历的电子商务从业者。沈军就分享一下这几天在学习零基础学PHP+MYSQL过程中,关于HTML基础知识的一些问题和感想。

毕业也快一年,一直从事网络推广工作,工作中经常接触到HTML代码,虽然大学里学过一些,但是自己仍然对HTML基础知识不够顽固,对于HTML没有系统性的概念。在这几天的HTML基础知识学习当中,主要有以下几点感悟。

1、看似熟悉,具体用法不懂

对于HTML基础知识,只能说大部分都是认识,知道代码是什么意思,可是详细的细分,具体代码怎么用,自己有不知道,对一些标记的属性根本不知道。比如说基本蚊子标记符<SUB>下角标和<SUP>上角标,网页标记<meta>网页的语言,之前的具体用法都不知道,我想之前网页的一些乱码可能和<meta>有一定的关系吧。

2、<p>和<br>标记的具体区别

经常在文字编辑当中,<p>的最基本的段落标记。<p>标记不需要成对出现,单个的<p>只需要加在段落末尾即可。<p>和<br>具体有什么关系呢,<p>标记的每个段落使段落与段落之间有一行空格。<br>换行标记责不会产生一行空格,只是普通的换行,<br>可以单独使用,也可以成对使用。

3、HTML基础知识需继续学习

发现问题才懂得去解决问题,自己对HTML基础知识不熟悉,就要不断的加强学习。空余时间多看看,遇到不懂的代码多查阅记录,养成良好的使用注释标记的习惯,这样对我们学习代码更快迅速。一句话,越是小问题,就是越仔细,面对大问题,我们才有足够的信心和实力!

NLP(Natural language processing)自然语言处理一直都是比较热门的领域,现在不管是搜索,推荐神马的基本都需要和nlp打交道,而中文的nlp处理的第一步就是分词了,所以中文分词一直扮演者举足轻重的角色。当然了,分词的算法也是层出不穷,从最初的字典匹配到后来的统计模型,从HMM到CRF,分词精度都在不断提高,下面我就简单介绍下基本的分词算法

字典匹配

最简单的分词就是基于字典匹配,一个句子“浅谈中文分词”,如果字典中我有这三个词“浅谈”“中文”“分词”那么我自然就可以把句子进行分词了。基于字典匹配随之而来的问题就是有多个匹配的情况,比如有“北京”“北京大学”两个词,这时来了个句子“北京大学在哪里”,应该用“北京”去匹配还是用“北京大学”去匹配,于是人们提出了很多启发式的匹配方案,比如最经典的最大匹配,就是尽可能的匹配最长的词,还有类似分词后分出的词的个数尽量少等启发规则,于是有了mmseg算法,提出了一些比较好的启发规则,而且实际应用时效果也很不错,所以应用很广泛,具体细节大家自行搜索,这里不在赘述。
统计模型

很快基于字典的分词还是会暴露出很多的问题,最主要的问题就是歧义的问题,比如“武汉市长江大桥”,不同的分词可能会变成“武汉/市长/江大桥”和“武汉市/长江/大桥”,显然字典匹配是不能解决这样的歧义问题的,于是有了统计的分词算法。在我的这篇文章里介绍的就是一元模型的分词算法,对于一个句子序列a1a2a3...an变成最后的词序列A1A2A3...Am,一元模型是希望

    argmaxΠmi=1P(Ai)

同样的n元模型即是

    argmaxΠP(Ai|Ai−1,Ai−2...,Ai−n+1)

我的这篇文章是一元模型的求法,于是统计模型的诞生有些的解决了分词问题中的歧义问题。
隐马尔可夫模型HMM(Hidden Markov Model)

前面的n元模型能够解决歧义的问题,但是,却不能很好解决未登录词的问题,所谓未登录词,是指没有见过的词,或者说没有在我们字典中的词于是后来人们提出了基于字标注的分词,比如这样一句话“我喜欢天安门”就可以变成这样的标注“我s喜b欢e天b安m门e”通过s(single)b(begin)m(middle)e(end)这样的标注把分词问题转变为标注问题,当第一次提出字标注算法时,在分词大会上也是取得了惊人的准确率。

HMM隐藏马尔可夫链模型就是这样一个字标注的分词算法,假设原来的句子序列是a1a2a3...an,标注序列是c1c2...cn,那么HMM是要求这样的式子

    argmaxΠP(ci|ci−1)∗P(ai|ci)

在我的SnowNLP这个项目里有去实现HMM的分词。
最大熵模型ME(Maximum Entropy)

我的这篇文章介绍了信息熵的概念,信息熵越大不确定性也就越大,信息熵最大时表示各种概率的均等分布,也就是个不偏不倚的猜测,最大熵模型一般就是在已知条件下,来求是的熵最大的情况,最大熵模型我们一般会有feature函数,给定的条件就是样本期望等于模型期望,即

    p−(f)=Σp−(ai,ci)∗f(ai,ci)=p(f)=Σp(ci|ai)∗p−(ai)∗f(ai,ci)

在已知条件下就是求熵最大的情况

    argmaxH(ci|ai)

H就是信息熵的函数,于是这样我们就求出了P(ci|ai),就知道了每个字a的标注c了,最大熵模型的一个好处是我们可以引入各种各样的feature,而不仅仅是从字出现的频率去分词,比如我们可以加入domain knowledge,可以加入已知的字典信息等。
最大熵马尔可夫模型MEMM(Maximum-entropy Markov model)

最大熵模型的一个问题就是把每个字的标注问题分裂来看了,于是就有聪明人把马尔可夫链和最大熵结合,搞出了最大熵马尔可夫模型,这样不仅可以利用最大熵的各种feature的特性,而且加入了序列化的信息,使得能够从整个序列最大化的角度来处理,而不是单独的处理每个字,于是MEMM是求这样的形式

    argmaxΠP(ci|ci−1,ai)

条件随机场CRF(Conditional Random Field)

MEMM的不足之处就是马尔可夫链的不足之处,马尔可夫链的假设是每个状态只与他前面的状态有关,这样的假设显然是有偏差的,所以就有了CRF模型,使得每个状态不止与他前面的状态有关,还与他后面的状态有关,从最开始的图片也能看出,HMM是基于贝叶斯网络的有向图,而CRF是无向图。

    P(Yv|Yw,w≠v)=P(Yv,Yw,w∼v) where w~v means that w and v are neighbors in G.

上式是条件随机场的定义,一个图被称为条件随机场,是说图中的结点只和他相邻的结点有关。最后由于不是贝叶斯网络的有向图,所以CRF利用团的概念来求,最后公式如下

    P(y|x,λ)=1Z(x)∗exp(Σλj∗Fj(y,x))

因为条件随机场既可以像最大熵模型那样加各种feature,又没有马尔可夫链那样的偏执假设, 所以近年来CRF已知是被公认的最好的分词算法StanfordNLP里就有良好的中文分词的CRF实现,在他们的这篇论文提到,他们把字典作为feature加入到CRF中,可以很好的提高分词的performance。

最近看到这篇论文,已经有人用deep learning的方法来尝试解决分词的算法,也取得了不错的效果。

总之现在的中文分词技术相对来说还是比较成熟了,所以如果没有必要用这些开源的分词实现已经足够了,不过鉴于学习的目的,自己去实现一个分词算法还是很有趣的。

下面来看一个简单的Delphi判断当前系统版本的程序,希望此程序地各位同学会带来帮助。
 代码如下 复制代码
function GetWinVer: string;
var lpver:_OSVERSIONINFO;
begin
    //###########获取Win系统版本################
    lpver.dwOSVersionInfoSize:=SizeOf(_OSVERSIONINFO);
    //###########必须要分配内存#################
   if  GetVersionExA(lpver) then
   begin
     case lpver.dwPlatformId of
        0:
        Result:='Windows 32s';
        1:begin
          case lpver.dwMinorVersion of
             0:
             Result:='Windows 95';
             10:
             Result:='Windows 98';
             90:
             Result:='Windows Me';
          end;
        end;
        2:begin
          case lpver.dwMajorVersion of
              3:
              Result:='WindowsNT 3.51';
              4:
              Result:='WindowsNT 4.0';
              5:begin
                case lpver.dwMinorVersion of
                    0:
                    Result:='Windows 2000';
                    1:
                    Result:='Windows XP';
                    2:
                    Result:='Windows 2003';
                end;
              end;
              6:begin
                case lpver.dwMinorVersion of
                    0:
                    Result:='Windows Vista';
                    1:
                    Result:='Windows 7';
                    2:
                    Result:='Windows 8';
                end;
              end;
          end;
        end;
        else
        Result:='Not Windows';
     end;
   end;
end;
MIME表示多用途Internet邮件扩允协议。多用途互联网邮件扩展类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。如mp3播放


媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:

Content-Type: text/HTML


表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。

通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。

XHTML 正是一个获得广泛应用的格式,因此,在 RFC 3236 中,说明了 XHTML 格式文件的 MIME Type 应该是 application/xHTML+XML。

当然,处理本地的文件,在没有人告诉浏览器某个文件的 MIME Type 的情况下,浏览器也会做一些默认的处理,这可能和你在操作系统中给文件配置的 MIME Type 有关。比如在 Windows 下,打开注册表的“HKEY_LOCAL_MACHINESOFTWAREClassesMIMEDatabaseContent Type”主键,你可以看到所有 MIME Type 的配置信息。

常见的MIME类型

超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

<embed width="480" height="338" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="dock=true&plugins=drelated-1&drelated.dxmlpath=relatedclips.xml&drelated.dposition=center&drelated.dshow=complete&drelated.dskin=grayskin.swf&drelated.dtarget=_self&skin=chrome.zip&image=http://blog.fity.cn/images/video.jpg" salign="lt" wmode="opaque" allowscriptaccess="always" allowfullscreen="true" quality="high" bgcolor="#000000" name="ply" id="ply" src="http://blog.fity.cn/demo/mp4player/fity.cn_player.swf?file=http://blog.fity.cn/video.mp4" type="application/x-shockwave-flash">

[!--infotagslink--]

相关文章

  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • php上传图片学习笔记与心得

    我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
  • Smarty模板学习笔记之Smarty简介

    1、简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目...2014-05-31
  • PHP安装threads多线程扩展基础教程

    一、下载pthreads扩展下载地址:http://windows.php.net/downloads/pecl/releases/pthreads二、判断PHP是ts还是nts版通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说...2015-11-24
  • php Observer观察者模式之学习笔记

    当我们在星际中开地图和几家电脑作战的时候,电脑的几个玩家相当于结盟,一旦我们出兵进攻某一家电脑,其余的电脑会出兵救援。 那么如何让各家电脑知道自己的盟友被攻击了...2016-11-25
  • 编程新手必须掌握的:session与cookie的区别

    session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
  • Flex网页布局基础入门及实例教程

    Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。本教程我们来学习一下Flex布局的基本语法知识及运用实例。 网页布局(layout)是CSS的一...2016-09-14
  • 一文秒懂JavaScript DOM操作基础

    通过这篇文章帮助大家快速学习JavaScript DOM操作基础的相关知识,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧...2021-04-30
  • PHP 日期函数 学习笔记介绍

    举一个简单的date例子 我将使用echo命令把内容输出到我们的客户端(浏览器)。我将使用下面的代码做为基础代码。 代码如下 复制代码 <!DOCTY...2016-11-25
  • 从零开始的html教程(7):html表单基础之一

    一聚教程网 从零开始的html教程(7),html表单的基础,零基础也能轻松学会html,希望大家喜欢 一、html的表单 表单负责网页中用户输入数据采集的功能,利用<form>标签来定...2016-12-31
  • python基础之局部变量和全局变量

    这篇文章主要介绍了python局部变量和全局变量,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下...2021-10-22
  • MySQL的日志基础知识及基本操作学习教程

    MySQL日志主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句...2015-11-24
  • Painter基础教程之图像水管分享

    今天小编在这里就来给Painter的这一款软件的使用者们来说下基础教程之图像水管,各位想知道的使用者们,那么下面就快来跟着小编一起看看吧。 给各位Painter软件的使...2016-09-14
  • Android学习笔记之多界面切换实例

    一篇Android学习笔记之多界面切换实例,希望对各位朋友有所帮助。 用过VB 、 VC#的朋友都知道,在VB或VC#里要进行窗口(界面)切换很容易 例如在VB、C#里: 有 Fom1、...2016-09-20
  • php中的变量引用传值学习笔记

    引用:意思是将原始对象在内存中的地址传递给目标对象,就相当于原始对象和目标对象指向的是同一个内存地址。此时,如果对目标对象或者原始对象进行修改,内存中的数据也会改...2016-11-25
  • python开发App基础操作API使用示例过程

    这篇文章主要为大家介绍了python开发App基础操作API使用的示例过程有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2021-10-30
  • 一篇文章带你了解C语言:入门基础(2)

    这篇文章主要介绍了C语言入门之基础知识详解,文中有非常详细的C语言使用教程及相关基础知识,对正在学习c语言的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-08-04
  • PHP中的cURL请求及示例学习笔记

    cURL是php中一个很强大的功能,可以模仿各种用户请求,如模仿用户登录,发送php cookie等等操作,下面我来整理一些相关的方法与各位同学看看 备注:使用curl_init函数,必须...2016-11-25
  • Jquery ajax基础教程

    jQuery的Ajax带来了无需刷新的web页面革命。这里就详细介绍一下jQuery所涉及到的Ajax操作。(无需特殊说明,均需要有服务器配置,这里本人用的是Tomcat 7)1.基于请求加载文件数据这里的请求通常都是网页的某些操作,如点击等...2015-11-24
  • 深入解析Java反射之基础篇

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,这篇文章主要给大家介绍了关于Java反射之基础篇的相关资料,需要的朋友可以参考下...2021-11-18