精华内容
下载资源
问答
  • 之前,笔者做过一些关于网络爬虫的东西。...而分类的前提是我们能够依据一些可信文本,对这些文本进行分词,再通过这些分出来的词再进行分类(如:贝叶斯分类器)。而本文就是对网页分类的前导学习——中文分词学习。

    前言:

      之前,笔者做过一些关于网络爬虫的东西。而且爬取的效果还可以。不过还有一些爬虫的博客没有完成,在后期会将其更新完成。而之前的爬虫只是对网页中的URL进行提取,我想做的效果是能对这些网页进行分类。而分类的前提是我们能够依据一些可信文本,对这些文本进行分词,再通过这些分出来的词再进行分类(如:贝叶斯分类器)。

      而本文就是对网页分类的前导学习——中文分词学习。


    关于文章:

      本文链接:http://blog.csdn.net/lemon_tree12138/article/details/48463215 - 编程小笙

     转载请注明出处


    获取网站标题和描述文本:

      写过Java网络的人都应该知道这里要如何获得网站的标题和描述情况。

      我们可以打开一个网页,然后在网页上右键查看源码。在源码的上方会有类似这样的一些信息,如下图:

      

      1.标题

      2.网页描述

      通过上面的截图我们可以知道这里两个信息的Tag和attr。具体的Java实现如下:

    public class GetTitleDesc {
    
        private void parser() throws IOException {
            Document doc = Jsoup.connect("http://mail.163.com/")
                    .header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0")
                    .get();
            System.out.println(doc.title());
            
            Elements metaElements = doc.getElementsByAttributeValue("name", "description");
            for (Element element : metaElements) {
                System.out.println(element.attr("content"));
            }
        }
        
        public static void main(String[] args) {
            GetTitleDesc get = new GetTitleDesc();
            try {
                get.parser();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


    对标题和描述进行分词:

    1.Lucene分词:

      1.说明:

      对于英文的分词是一个比较方便的操作,因为英文是以空格为分隔符。而在中文中,我们不能单纯地以某一个字来分隔一段字符。这样我们可能会得到一些莫名其妙的结果。

      关于分词的代码,主要参考:http://blog.sina.com.cn/s/blog_b8f01fb90101gxyb.html

      不过还好,我们有lucene这个包。对于中文分词,我们具体需要导入以下工具包:

      


      2.代码实现:

      这里我们就以之前在163邮箱上的描述来作为输入文本:

      网易163免费邮箱--中文邮箱第一品牌。容量自动翻倍,支持50兆附件,免费开通手机号码邮箱赠送3G超大附件服务。支持各种客户端软件收发,垃圾邮件拦截率超过98%。

    public class TestJeAnalyzer {
        private static final String LABEL = "网易163免费邮箱--中文邮箱第一品牌。容量自动翻倍,支持50兆附件,免费开通手机号码邮箱赠送3G超大附件服务。支持各种客户端软件收发,垃圾邮件拦截率超过98%。";
    
        public static void testStandard(String testString) throws Exception {
            Analyzer analyzer = new StandardAnalyzer();
            Reader r = new StringReader(testString);
            StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
            Token t;
            while ((t = sf.next()) != null) {
                System.out.println(t.termText());
            }
        }
    
        public static void testCJK(String testString) throws Exception {
            Analyzer analyzer = new CJKAnalyzer();
            Reader r = new StringReader(testString);
            StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
            Token t;
            while ((t = sf.next()) != null) {
                System.out.println(t.termText());
            }
        }
    
        public static void testChiniese(String testString) throws Exception {
            Analyzer analyzer = new ChineseAnalyzer();
            Reader r = new StringReader(testString);
            TokenFilter tf = (TokenFilter) analyzer.tokenStream("", r);
            Token t;
            while ((t = tf.next()) != null) {
                System.out.println(t.termText());
            }
        }
    
        public static void testJe(String testString) throws Exception {
            Analyzer analyzer = new IK_CAnalyzer();
            Reader r = new StringReader(testString);
            TokenStream ts = (TokenStream) analyzer.tokenStream("", r);
            Token t;
            while ((t = ts.next()) != null) {
                System.out.println(t.termText());
            }
        }
    
        public static void main(String[] args) throws Exception {
            String testString = LABEL;
            System.out.println("原始文本:" + testString);
            Utils.sleep(10);
    
            System.err.println("=====standard analyzer====");
            System.err.println("分析方法:默认没有词只有字");
            testStandard(testString);
            Utils.sleep(10);
            
            System.err.println("=====cjk analyzer====");
            System.err.println("分析方法:交叉双字分割");
            testCJK(testString);
            Utils.sleep(10);
            
            System.err.println("=====chinese analyzer====");
            System.err.println("分析方法:基本等同StandardAnalyzer");
            testChiniese(testString);
            Utils.sleep(10);
            
            System.err.println("=====je analyzer====");
            System.err.println("分析方法:字典分词,正反双向搜索,具体不明");
            testJe(testString);
        }
    }
     

      3.分词结果(部分):

      


    2.MMAnalyzer分词:

      1.代码部分:

    public class Segment1 {
    
        public static void main(String[] args) {
            String LABEL = "网易163免费邮箱--中文邮箱第一品牌。容量自动翻倍,支持50兆附件,免费开通手机号码邮箱赠送3G超大附件服务。支持各种客户端软件收发,垃圾邮件拦截率超过98%。";
    
            MMAnalyzer analyzer = new MMAnalyzer();
            try {
                System.out.println(analyzer.segment(LABEL, " | "));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

      2.效果展示:

    网易 | 163 | 免费邮箱 | 中文 | 邮箱 | 第一 | 品牌 | 容量 | 自动 | 翻倍 | 支持 | 50兆 | 附件 | 免费 | 开通 | 手机 | 号码 | 邮箱 | 赠送 | 3g | 超大 | 附件 | 服务 | 支持 | 各种 | 客户端 | 软件 | 收发 | 垃圾邮件 | 拦截 | 率 | 超过 | 98% | 

      根据上面两种分词方面,可能你已经感觉到第二会更准确一些。


    相关源码下载:

    http://download.csdn.net/detail/u013761665/9107117

    展开全文
  • 电商网站分类导航效果--CSS实现(二) 二级菜单
    /*二级菜单样式*/
    .show_menu{
        display: none;  position: absolute;  z-index:4;  /*设置悬浮效果*/
        top: 42px;  left: 318px;  border: 1px solid #ccc;
        width: 715px;  background: #fff;  }  /*添加背景颜色为了遮住红色边框颜色*/
    .left_div  {  width: 495px;  float: left;  margin: 0 5px;  }
    .right_div  {  width: 200px;  float: left;  margin: 0 5px; }
    /*二级菜单内部样式*/
    .left_div dl  {  border-bottom: 1px solid #eeeeee;  padding-bottom: 2px;
        overflow: hidden;  margin-top: 2px;  }    /*overflow是防止字数过多超出*/
    .left_div dl dt  {  display: block;  width: 60px;
        float: left;  text-align: right;  height: 22px;
        line-height: 22px;  padding-right: 8px;  }
    .left_div dl dt a {  color: #E4393C;  font-weight:bold;  text-decoration: underline;  }
    .left_div dl dd {  display: block;  overflow: hidden;  }
    .left_div dl dd a{
        display: block;  float: left;  border-left: 1px solid #cccccc;    /*a不是块级元素*/
        color: #737373; padding: 0px 8px;  height: 14px;  /*行高和前面不一样是为了解决后面的多行问题*/
        line-height: 14px;  margin: 6px 0;            /*通过调节内外边距来对齐*/
    }
    .right_div dl {  margin-top: 6px;  }
    .right_div dl dd a:hover{  color: #313131;  font-weight:normal;  text-decoration: none;  }
    
    
    总结:
    1,左右分区,dl,dt,dd利用浮动来达到一行显示
    2,竖线用边框实现
    3,其他一些基本的样式设置
    
    展开全文
  • 十七、网站分类列表页面设计

    千次阅读 2017-01-25 11:45:30
    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 创建一些文章   首先,为了能展示我们的效果,我们先在后台创建几篇文章,例如如下:       安装分页插件   列表性质的页面一般...

    上一节我们完成了高大上的主页,并展示了每个分类,那么按照常理,用户点击分类项怎么能展示出这一分类的博客列表呢?我们这一节来制作分类列表页

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

    创建一些文章

     

    首先,为了能展示我们的效果,我们先在后台创建几篇文章,例如如下:

     

     

     

    安装分页插件

     

    列表性质的页面一般都需要做分页处理,这个工作要是让我们自己处理是十分繁琐的,所以我们利用symfony2的扩展knp-paginator-bundle。

     

    修改app/AppKernel.php文件,增加如下注册语句:

    new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),

     

    修改app/config/config.yml,增加如下配置:

    knp_paginator:
        page_range: 5                      # default page range used in pagination control
        default_options:
            page_name: page                # page query parameter name
            sort_field_name: sort          # sort field query parameter name
            sort_direction_name: direction # sort direction query parameter name
            distinct: true                 # ensure distinct results, useful when ORM queries are using GROUP BY statements
        template:
            pagination: KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig     # sliding pagination controls template
            sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template

     

    解释一下,KnpPaginator是一个分页插件,配置项中page_range是默认的每一页的条目数,其他几个配置项可以不用详细了解

    pagination: KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig这个是配置分页中底部页码部分的样式模板,有几种可以选择:

    • KnpPaginatorBundle:Pagination:sliding.html.twig (by default)
    • KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig
    • KnpPaginatorBundle:Pagination:twitter_bootstrap_pagination.html.twig
    • KnpPaginatorBundle:Pagination:foundation_v5_pagination.html.twig

     

     

    修改controller

     

    修改src/AppBundle/Controller/BlogController.php,把其中的listAction函数内容改成:

        public function listAction(Request $request, $subjectId)
        {
            $em    = $this->get('doctrine.orm.entity_manager');
            $dql   = "SELECT a FROM AppBundle:BlogPost a WHERE a.subject=" . $subjectId . " ORDER BY a.createTime DESC";
            $query = $em->createQuery($dql);
    
            $paginator  = $this->get('knp_paginator');
            $pagination = $paginator->paginate(
                $query,
                $request->query->get('page', 1)/*page number*/,
                10/*limit per page*/
            );
    
            return $this->render('blog/list.html.twig', array('pagination' => $pagination));
        }

     

    解释一下,注意这次listAction参数里除了$request之外,多出了一个$subjectId,这是和后面要配置的路由相对应的,表示会在url里传过来一个subjectId的数值。

    看$em这一行,在symfony2中对model的操作都需要先获取到EntityManager进行操作

    第二行$dql赋值是一条sql语句,这里面根据$subjectId来从数据库里取BlogPost,并且按照createTime来排序,这里面需要注意的是:sql语句中写的变量名不是数据库表的字段名(小写),而是model类里定义的成员名

    $pagination这一行则是调用分页插件的函数,默认取第一页,最后一个参数10表示每页展示多少条,这个会冲掉app/config/config.yml配置的5,这里面的$pagination是一个对象数组,每个成员都是一个BlogPost这个model的对象

     

     

    修改模板

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

    修改app/Resources/views/blog/list.html.twig,把内容改成:

    {% extends "base.html.twig" %}
    
    {% block body %}
    
    <div class="row">
        <div class="col-sm-3 col-xs-1"></div>
        <div class="col-sm-6 col-xs-10">
    
            <br />
            {% for article in pagination %}
            <div style="background-color: whitesmoke; padding-left: 30px;padding-right: 30px;padding-top: 10px;">
                <div class="row">
                    <div class="col-sm-2 col-xs-2"></div>
                    <div class="col-sm-8 col-xs-12">
                        <div class="row">
                            <h3>{{ article.title }}</h3>
                        </div>
                    </div>
                    <div class="col-sm-2"></div>
                </div>
                <br />
            </div>
            <br />
            {% endfor %}
            <div class="navigation">
                {{ knp_pagination_render(pagination) }}
            </div>
    
        </div>
        <div class="col-sm-3 col-xs-1"></div>
    </div>
    
    {% endblock body %}

     

    解释一下,pagination是一个对象数组,for循环遍历每一个对象,通过{{ article.title }}获取它的title属性展示出来

    下面的{{ knp_pagination_render(pagination) }}是分页插件特有的功能,就是底部页码的按钮部分

     

    配置路由

     

    修改app/config/routing.yml,把曾经添加过的:

    blog_list:
        path:     /bloglist/
        defaults: { _controller: AppBundle:Blog:list }

     

    改成:

    blog_list:
        path:     /bloglist/{subjectId}
        defaults: { _controller: AppBundle:Blog:list }

     

    解释一下,这里的{subjectId}会自动传到controller中,并以参数形式传到listAction里,见上面listAction函数的实现

     

    好,现在打开http://172.16.142.130/app_dev.php/bloglist/4,(这里的4是Subject的id,你可以查看你的数据库看你的subject的id都有哪些值)

     

     

    从首页点进来

     

    我们先打开首页http://172.16.142.130/app_dev.php,点击一个图标,就能直接进到博客列表页,这是怎么做到的呢?其实我们在上一节已经做好了相关准备,看下app/Resources/views/default/index.html.twig里的这几句:

            <a href="{{ path('blog_list', {'subjectId':subject.id}) }}" class="thumbnail">
                <img src="{{ subject.photo }}" alt="{{ subject.name }}">
    
                <div class="caption">
                    <h3>{{ subject.name }}</h3>
    
                    <p>{{ subject.introduce }}</p>
                </div>
            </a>

     

    这里面的a标签已经把跳转链接写成了{{ path('blog_list', {'subjectId':subject.id}) }},它会自动从路由配置里找到名字为blog_list的路由,并把subject.id的值传递到subjectId变量中

     

    下一节我们继续对博客列表也做一些美化,然后开发博客的展示页

    展开全文
  • 所以就我自己对在线视频网站的认识,将我所知道的关于在线视频观看中的一些心的写出来。首先介绍一下国内的多家视频网站,后续介绍如何观看。 网站地址 网址 说明 优酷网 ...

    最近的在线视频相当的火,据有关部门统计目前观看视频的月活跃用户数达到了亿级。所以就我自己对在线视频网站的认识,将我所知道的关于在线视频观看中的一些心的写出来。首先介绍一下国内的多家视频网站,后续介绍如何观看。

    网站地址

    网址

    说明

    优酷网

    http://www.youku.com

    Youku网上的内容相当的多,而且是带宽最好的,据说优酷网一个月的带宽支出就是 1kw ,所以 速度也是最快的 。现在可以算是国内视频第一站。不过就是视频的码流率低。

    土豆网

    http://www.tudou.com

    内容也相当的多,教育网的速度不怎么样。目前有一个黑豆(http://hd.tudou.com) ,里面的高清视频,码流达到 500kbps 左右。希望看高清的可以常上来看看。

    我乐网

    http://www.56.com

    这个好像是最先做视频分享网站的,但是因为去年被封,所以流量下跌了一点。里面有特色的是一个美女频道,上面很多mm 唱歌什么的,自拍型的。也有一个高清剧场,不过感觉清晰度一般

    6

    http://www.ku6.com

    6 网借助去年的奥运会可是把流量能火了一把,上面很多自创视频,比如说山寨新闻,看起来还是很有意思的。也有一个高清频道,但是需要安装急速酷 6 才可以观看

    6间房

    http://www.6.cn

    6间房最近不行了,页面上面广告贼多

    天线视频

    http://www.openv.com

    这个上面的基本上都是高清视频,电视记录的录制比较多,各种电视台上播出的节目基本上都可以找到,有个高清剧场很不错,还有很多美剧,我每次都是到上面去看美剧

    新浪网

    http://v.sina.com.cn

    门户网站做的视频当然是没说的,新闻很全。有一个播客频道。还有一个高清频道,但是这个网速不咋的。

    搜狐网

    http://v.blog.sohu.com

    http://tv.sohu.com

    第一个网址是别人上传视频。

    第二个是搜狐的视频新闻和高清影视剧,这个 高清影视剧强力推荐 ,速度和清晰度上都相当的不错。

    腾讯网

    http://video.qq.com

    门户的模式,包含新闻、网友上传,也不错

    网易

    http://v.163.com

    以前是和激动网合作,现在好像自己制作的刚刚上线,研究不多,不过无非就是门户的模式。

    激动网

    http://www.joy.cn

    这个网站号称都是正版内容,里面有一些付费内容。所以我自己看的也不多

    乐视网

    http://wwwl.letv.com

    这个上面的内容也相当的清晰,一个不错的网站

    央视网

    http://video.cctv.com

    http://space.cctv.com

    一个星播客一个大社区,星播客上面的上传视频比较多;大社区里面央视播出的电视节目比较多,如果看到央视正在放什么电视剧或者放过什么电视剧,上面找找,一般都能找到

    东方宽频

    http://www.smgbb.cn

    上海文广集团下面的,上海这边的电视台放过的内容在上面可以找到,其中分了栏目和上海电视文广集团下面的自主品牌节目可以找到

    新视界

    http://www.dvod.com

    电视节目居多,每天更新的量不是很大

    第一视频

    http://www.vodone.com

    新闻内容居多

    17173

    http://www.17173.com

    游戏主题的视频网站

    琥珀网

    http://www.hupo.tv/

    视频也比较多,东西当然没有优酷网全了

    齐鲁网

    http://vod.iqilu.com/

    齐鲁电视台的节目,上面有很多搞笑的栏目,推荐上去看看

    凤凰网

    http://v.ifeng.com

    凤凰网的新闻内容很多也很全面也很真实,看新闻这个不错

    当然还有一些其他的视频网站是我不知道的,希望朋友们多多补充。那些没有自主服务器存储的网站我就没有列出来,当然像google microsoft 他们的那些视频网站我个人觉得不适合我们这些国内用户看,没得什么看头。

    如果有什么遗漏的,欢迎各位朋友批评指正,小弟不胜感激。

    展开全文
  • -B2B -博客排名网站名称域名评价指数 排名网站名称域名评价指数1阿里巴巴www.alibaba.com9.983 1搜狐博客blog.sohu.com9.9752HC360慧聪网www.hc360.com9.982 
  • 一些长久网站或高权重、流量高的网站分类目录还有用的,不但能增加优质的外链,提高网站的权重,还能增加网站的曝光率。做seo网页优化的,很多都将会新站提交到各个分类目录网站,但有的网址一直处理审核中或需要...
  • 分类信息网站源代码+后台
  • 分类信息网源码,带商家黄页的分类信息网系统,会员可自助建站的分类信息网站程序,可根据浏览IP自动跳转分站的分类网站后台管理系统,供求信息网站源码,asp.net分类信息源码,生成html的分类信息站源码,此系统是基于asp...
  • 介绍一个国外的分类网站Egouz

    千次阅读 2019-03-16 20:50:31
    一个分类网站,体现了国外网站一贯的简洁大气的UI风格。 点击“背单词”,进去之后就是Egouz自己排名的背单词工具列表: 随便点击一个进去,有该网站的详细介绍: 点击无版权图,就进入了各种素材网站: 电子书...
  • 分类信息网源码,带商家黄页的分类信息网系统,会员可自助建站的分类信息网站程序,可根据浏览IP自动跳转分站的分类网站后台管理系统,供求信息网站源码,asp.net分类信息源码,生成html的分类信息站源码,此系统是基于asp...
  • 大学生垃圾分类网页制作设计思路知识点应用内容说明代码...三层结构,共11个页面(1个首页、6个二级页面、4个三级页面)网页内容包括:网站首页、产生原因、分类原则、分类意义、垃圾种类、操作流程、在线留言。 代码
  • 谁在使用我的网站——用户分类

    千次阅读 2013-02-27 10:51:57
    谁在使用我的网站——用户分类 用户分类网站分析中,根据用户的基本信息和行为特征可以将用户分为许多类别,衍生出各种各样的用户指标,对于用户总体的统计可以让我们明确用户的整体变化情况,而对于用户各分类...
  • 分享30个分类目录网站,seo优化首选,免费提交收录 很多做seo的朋友开始都知道一提,二发,三交换,这句口诀吧,仔细说来就新站先提交分类目录,然后发优质外链,再交换优质友情链接,这样排名上升速度非常快,...
  • 搜集的动植物分类、检索网站

    千次阅读 2016-03-16 13:27:25
    搜集的动植物分类、检索网站 一、植物 ①cfh:只要是研究植物的,几乎都用这个网站,里面的植物非常全,只是它的分类太细致了,以至于根据科属查找时有点小麻烦。 http://www.cfh.ac.cn/ ②cvh:个人比较喜欢的一个...
  • 我学习C#找的一个很不错的例子,C#+MSSQL数据库,已经调试过了。绝对是学习的好例子。
  • 我们在设计博客的数据库时,分别...考虑到我们已经为博客网站设计了标签云,如果再设计一个分类云的话,就显得重复了,为此,我们不再单独创建分类页面,而直接在博客详情页面中添加博客分类的入口,这样既能查询...
  • 发现个不错的OJ题目分类网站

    千次阅读 2016-07-18 09:58:07
    网上瞎逛发现了一个东华大学的非常不错的OJ题目分类网站,把好几个有名的OJ系统上的题目分别按知识点和难易程度进行了分类,非常适合那些希望有针对性做题的同学。同时每一个题目还配有相应的博客。...
  • 在WordPress网站建设的过程中,我们有时会碰到这样的问题,原先创建了很多个分类,但是后来发现有些分类不需要了,不过这些不需要的分类里面还有很多文章,怎样删除这个分类而又同时修改这些文章的分类归属呢?...
  • 这篇博文主要是分析很多大型网站采用这种方式来显示这样的列表的功能。 首先: 首先弄明白,什么样子的才能成为父节点:即含有子节点的节点才为父节点。无子节点的称为叶子节点。 其中最左侧是parentId为0...
  • 包含以下十余个分类 综合平台 外语学习 编程算法 电脑办公 百科知识 设计剪辑 音乐艺术 文史哲理 医学政经 演讲座谈 数理化生 无论你是在校学生,还是上班人群,亦或是单纯的学习爱好者,无需再苦恼于四处寻找学习...
  • 关于DedeCMS 友情链接按分类网站类型调用的问题,很多草根站长在织梦论坛询问,近日烈火网根据本站需要恰巧遇到这个问题,就写一篇教程来告诉大家是如何现实的,演示请看烈火网首页尾部的链接分类(以滑动门的形式...
  • “垃圾分类网”项目文档 一、 项目概述 1、 设计思路 本次网页设计主题是以宣传垃圾分类为主题,因此秉着平台需要突出宣传垃圾分类、提高垃圾分类意识的想法,网页共分6个页面,第一个是整体的一个页面“首页”,...
  • 可以添加自己的分类主题 对分类主题可以进行内容编辑. 界面不错,希望对你有帮助.
  • 本文实现了一个分类导航的菜单,和大多数流行的电子商务网站类似. 菜单的实现难点主要在CSS的编写上,并没有用到太多的JS. 下面只介少几处关键点,详细的实现可以直接查看源代码.所有的代码都在一个sidebar.html文件中....
  • 语言使用c++,每篇文章题目为网站-题目(难度类型),每篇文章分为题目、思路、更优题解、提升笔记、优化代码、全部代码。 用于个人笔记,分享思路与代码优化。 线性表 栈 队列 树 ...
  • --商品分类-左侧--> <div class="fenlei_zuo"> 分类01</div> 分类02</div> 分类03</div> 分类04</div> 分类05</div> 分类06</div> 分类07</div> 分类08</div> 分类09</div> </div> <!--商品分类-右侧--> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 271,076
精华内容 108,430
关键字:

网站如何分类