精华内容
下载资源
问答
  • webView的三种方法 一、使用UIWebView 将web content 嵌入到应用上。 API提供了三种方法: - (void)loadRequest:(NSURLRequest *)request; - (void)loadHTMLString:(NSString *)string baseURL:...

    - (void)dooo

    {

            NSString * str=@"<p style=\"text-align: center;\"><img style=\"width:94%;height:auto\" src=\"http://p1.img.cctvpic.com/photoworkspace/contentimg/2014/01/13/2014011318535072073.jpg\" alt=\"AC米兰官方宣布阿莱格里下课\" width=\"500\"/></p><p style=\"text-align: center;\"><span style=\"color: #0000ff;\"><strong>AC米兰官方宣布阿莱格里下课</strong></span></p><p><span style=\"color: #000000;\">  北京时间113日晚6时,意甲AC米兰俱乐部官方宣布主帅阿莱格里下课。昨天的意甲第19轮比赛中,AC米兰客场34不敌升班马萨索洛,比赛结束之后就传出了阿莱格里将会被解雇的消息。</span></p><p><span style=\"color: #000000;\">  米兰的官方公告中写道:阿莱格里先生和他的助手们将不再担任球队一线队教练的工作,对此我们非常遗憾,感谢阿莱格里和他的团队几年来为俱乐部做出的贡献,祝愿他在未来的工作中继续取得成功。”<span style=\"font-size: 14px;\">此前意大利方面的消息都是在阿莱格里下课后,前米兰球星因扎吉将暂时接手球队,不过米兰官方公告中称球队的训练和比赛任务暂时由助理教练毛罗-塔索蒂负责。</span></span></p><p><span style=\"color: #000000;\">  <span style=\"font-size: 14px;\">阿莱格里在2010年世界杯后上任成为AC米兰队主教练,带队第一个赛季就帮助米兰七年后重夺意甲联赛冠军,随后又率队在北京击败国米夺得意大利超级杯,第二个赛季米兰战绩同样不错,可惜在关键一战中因为裁判的误判失去了一个重要进球,米兰在联赛冠军的争夺中输给了尤文图斯,后面两个赛季米兰阵容人员不整,不过阿莱格里还是率队赢得了上赛季的第三名,从而获得本赛季欧冠参赛资格。新赛季米兰战绩比上赛季还差,主帅阿莱格里终于被解职。</span></span></p>";

        

        


        

       // [self flattenHTML:str];

        [selfremoveHTML2:str];

        

    }


    //法1

    - (NSString *)flattenHTML:(NSString *)html {

        

       NSScanner *theScanner;

       NSString *text =nil;

        

        theScanner = [NSScannerscannerWithString:html];

        

       while ([theScannerisAtEnd] == NO) {

            // find start of tag

            [theScannerscanUpToString:@"<"intoString:NULL] ;

            // find end of tag

            [theScannerscanUpToString:@">"intoString:&text] ;

            

            // replace the found tag with a space

            //(you can filter multi-spaces out later if you wish)

            html = [html stringByReplacingOccurrencesOfString:

                    [NSStringstringWithFormat:@"%@>", text]

                                                  withString:@""];

        } // while //

        

        NSLog(@"-----===%@",html);

       return html;

    }


    //法2

    - (NSString *)removeHTML2:(NSString *)html{

        

        NSArray *components = [htmlcomponentsSeparatedByCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@"<>"]];

        

        

        

       NSMutableArray *componentsToKeep = [NSMutableArrayarray];

        

       for (int i =0; i < [componentscount]; i = i + 2) {

            

            [componentsToKeepaddObject:[componentsobjectAtIndex:i]];

            

        }

        

        

        

       NSString *plainText = [componentsToKeepcomponentsJoinedByString:@""];

        

       NSLog(@"---%@",plainText);

       return plainText; 

        

    }





    webView的三种方法

    一、使用UIWebView 将web content 嵌入到应用上。

    API提供了三种方法:

    1. - (void)loadRequest:(NSURLRequest *)request;
    2. - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
    3. - (void)loadData:(NSData *)data MIMEType:(NSString *)
    4. MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

    1、直接给出url地址即可将web content载入。

    1. NSString *path = @"http://theo2life.com";
    2. NSURL *url = [[NSURL alloc] initWithString:path];
    3. [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

    2、将本地html文件内容嵌入webView

    1. NSString *resourcePath = [ [NSBundle mainBundle] resourcePath];
    2. NSString *filePath = [resourcePath stringByAppendingPathComponent:@"test.html"];
    3. NSString *htmlstring =[[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    4. [self.webView loadHTMLString:htmlstring baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];

    如果不从html文件载入你也可以这样:

    1. NSString *HTMLData = @"<img src=\"test2.png\" />ddd";
    2. [self.webView loadHTMLString:HTMLData baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];
    3. baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]

    这段指出HTMLData所引用的其他文件资源的基本路径,如果baseURL:nil图片信息将不会显示出来~

    3、同2,更详细的给出了web content的编码方式。

    二、其他操作:

    如果载入的web布局大过ipad尺寸发现超出的部分会是空白,则设置webView.scalesPageToFit = YES;让web content布局适应webView。


    展开全文
  • python-相似度计算的三种常用方法

    万次阅读 2018-06-01 10:09:22
    协同过滤就是通过将用户和其他用户数据进行对比来实现推荐。(1)相似度计算:用欧氏距离来计算。相似度用距离来衡量,距离越大,相似度越小;距离越小,相似度越大。(2)皮尔逊相关系数:这个参数用来度量两个...

    协同过滤就是通过将用户和其他用户的数据进行对比来实现推荐的。

    (1)相似度计算:用欧氏距离来计算。相似度用距离来衡量,距离越大,相似度越小;距离越小,相似度越大。

    (2)皮尔逊相关系数:这个参数用来度量两个向量之间的相似度。corroef()进行计算,皮尔逊相关系数取值从-1到+1,我们可以通过0.5+0.5*corrcoef()来计算,将值调整归一化到0到1之间。

    (3)余弦相似度:两个向量夹角的余弦值。夹角为90度,相似度为0,方向相同,相似度为1,方向相反,相似度为-1,取值范围也在-1到+1之间。因此,我们将它归一化到0到1之间。cos=AB/||A||||B||. 其中,||A|| ||B||表示2范数。利用linalg.norm().

    # -*- coding: utf-8 -*-
    """
    """
    from numpy import *
    from numpy import linalg as la

    def loadExData():
        return [[1,1,1,0,0],
                [2,2,2,0,0],
                [1,1,1,0,0],
                [5,5,5,0,0],
                [1,1,0,2,2],
                [0,0,0,3,3],
                [0,0,0,1,1]]
    data=mat(loadExData())
    def ecludSim(inA,inB):
        return 1.0/(1.0+la.norm(inA-inB)) #inA,inB是列向量
    def pearSim(inA,inB):
    #    print(inA,len(inA))
        if len(inA)<3:
            return 1.0
        else:
    #        print("corrcoef(inA,inB,rowvar=0)",corrcoef(inA,inB,rowvar=0))
            #对称矩阵,且corrcoef是x1x1,x1x2,x2x1,x2x2这四者系数。
    #        print("corrcoef(inA,inB,rowvar=0)[0]",corrcoef(inA,inB,rowvar=0)[0])
            #由于两个变量,所以取第一行就是x1对所有变量的线性相关性,协方差。
    #        print("corrcoef(inA,inB,rowvar=0)[0][1]",corrcoef(inA,inB,rowvar=0)[0][1])
            #第一行第二列就是x2x1,第二列和第二行一样都是第二个变量对所有其他变量的线性相关性。
            return 0.5+0.5*corrcoef(inA,inB,rowvar=0)[0][1]
    def cosSim(inA,inB):#inA,inB是列向量
        num=float(inA.T*inB)
        denom=la.norm(inA)*la.norm(inB)
        return 0.5+0.5*(num/denom)
    print("ecludSim=",ecludSim(data[:,0],data[:,1]))
    print("pearSim=",pearSim(data[:,1],data[:,1]))
    print("cosSim=",cosSim(data[:,0],data[:,1]))
    结果为:
    ecludSim= 1.0
    pearSim= 1.0
    cosSim= 0.9999999999999999

    
    展开全文
  • 今天给大家分享是我们在JS数组中常见到种方法,并且对这些方法进行详细介绍。 1.filter() 过滤 检测数组,返回符合条件内容, 没有符合则返回空数组 参数:函数, 有个参数分别为,当前项,当前项...

    前言

    今天给大家分享的是我们在JS数组中常见到的几种方法,并且对这些方法进行详细的介绍。

    1.filter()

    过滤
    检测数组,返回符合条件的内容, 没有符合的则返回空数组
    参数:函数, 有三个参数分别为,当前的项,当前项的下标,检测的
    注意:不用改变原数组
    

    举个栗子

    	let arr = [1, 2, 3, 4, 5];
    	let arr1 = arr.filter((x, y, z) => {
    		console.log(x, y, z);
    		return x > 2
    	})
    	console.log(arr1);
    

    在这里插入图片描述

    2.map()

    映射
    Array.map((item, index) => {})
    返回一个新的数组, 新数组中的元素是原数组调用函数后处理过的值
    

    举个栗子

    let arr = [1, 2, 3, 4, 5];
    let arr1 = arr.map((item, index) => {
    	return item * index
    })
    console.log(arr1);
    

    在这里插入图片描述
    3.reduce()

    reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其简化为单个值。
    reduce为数组中的每一个元素依次执行callback函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:
    

    四个参数:

    accumulator:累加器
    currentValue:当前值
    currentIndex:当前索引
    array:数组
    

    举个栗子

    	var sum = [0, 1, 2, 3].reduce(
    		(acc, cur) => acc + cur,
    		0
    	);
    	console.log(sum)
    

    在这里插入图片描述
    4.for Each()

    forEach是最基本的方法,它的作用是对数组的每个元素执行一次提供的函数。
    

    forEach方法中的回调函数会被依次传入三个参数:

    数组当前项的值
    数组当前项的索引
    数组对象本身
    

    举个栗子

    	var out = [];
    		[1, 2, 3].forEach(function(elem) {
    		
    		this.push(elem * elem);
    		
    	}, out);
    		
    	console.log(out)
    

    在这里插入图片描述

    展开全文
  • 协同过滤是用来做推荐算法 1. 基于用户协同过滤(UserCF) 2. 基于物品协同过滤(ItemCF) 3. 四求相似度的方法 4.基于物品协同过滤的计算步骤以及利用mahout调用协同过滤的方法

    协同过滤是用来做推荐的算法

    1. 基于用户的协同过滤(UserCF)

    (1) 收集用户资料
    (2) 最近邻搜索找到相似用户
    (3) 计算产生推荐结果

    基于用户的协同过滤

    2. 基于物品的协同过滤(ItemCF)

    (1) 收集用户资料
    (2) 针对物品的最近邻搜索找到相似物品
    (3) 计算产生推荐结果

    基于物品的协同过滤

    3. 四种求相似度的方法

    不管是那种协同过滤,都需要找到相似的物品或用户,有以下4种求相似度的方法

    (1) 基于距离计算相似度(欧几里德距离)
    通过求高维空间中的点的距离来计算相似度

    (2) 基于相关系数计算相似度(皮尔逊相关系数)
    皮尔逊相关系数一般用于计算两个变量间联系的紧密程度,它的取值在[-1,+1]之间

    (3) 基于夹角余弦计算相似度(Cosine Similarity)
    一般用于计算文本之间的相似度

    (4) 基于Tanimoto谷本系数计算相似度,也成Jaccard系数,是Cosine相似度的扩展,也用于计算文档数据的相似度

    4. 基于物品的协同过滤的计算步骤

    (1) 建立物品的同现矩阵

    同现矩阵是体现商品相似度的一种方式

    求同现矩阵的方法

    (2) 建立用户对物品的评分矩阵

    用户评分矩阵

    这个评分矩阵中大部分数据为0,因为用户购买的物品是远远小于物品所有的种类的,这样的矩阵称为稀疏矩阵
    做推荐的本质就是:把用户的评分从稀疏矩阵变成稠密矩阵,也就是预测用户对没买过的物品的评分,然后取TopN后

    (3) 物品的同现矩阵与用户评分矩阵相乘

    比如,给用户3推荐物品:

    ItemCF算法

    协同过滤的mahout命令格式如下:

    MAHOUT_HOME/bin/mahout recommenditembased
    # 输入文件的位置                                                                         
    --input <input> 
    # 输出文件的位置
    --output <output> 
    # 给每个用户推荐物品的数量,如果可推荐的数量小于指定的数量,取可推荐的数量的最大值
    --numRecommendations <numRecommendations>   
    # 设置误差的阈值
    --threshold <threshold>                                                      
    # 选择计算相似度的方法:常用的有以下5种,协同过滤我们选择同现矩阵,可以缩写为-s
    --similarityClassname             
        SIMILARITY_COOCCURRENCE # 同现矩阵                                                
        SIMILARITY_TANIMOTO_COEFFICIEN # 谷本系数                                                                         
        SIMILARITY_COSINE # cos余弦夹角                                              
        SIMILARITY_PEARSON_CORRELATION # 皮尔逊相关系数                                                

    使用mahout提交机器学习相关的内容,需有以下条件:
    (1) Hadoop集群(HDFS和YARN)正常启动
    (2) Mahout安装在Hadoop集群中的机器上

    提交命令:

    /opt/mahout-0.10.2/bin/mahout recommenditembased 
    -s SIMILARITY_COOCCURRENCE 
    --input /mahout/input/user.txt 
    --output /mahout/output/ 
    --numRecommendations 5

    注意:

    (1) 在Linux中,一条命令必须是一行,屏幕中显示不了会自动换行,我们这里为了方便阅读,进行了人为换行

    (2) - -input 和 - - output后接的路径都是HDFS的路径

    (3) user.txt的内容如下

    1,101,5.0
    1,102,3.0
    1,103,2.5
    2,101,2.0
    2,102,2.5
    2,103,5.0
    2,104,2.0
    3,101,2.5
    3,104,4.0
    3,105,4.5
    3,107,5.0
    4,101,5.0
    4,103,3.0
    4,104,4.5
    4,106,4.0
    5,101,4.0
    5,102,3.0
    5,103,2.0
    5,104,4.0
    5,105,3.5
    5,106,4.0

    (5) 如果报错内容中出现HDFS路径,比如
    Output directory temp/preparePreferenceMatrix/itemIDIndex already exists
    那么路径前没有加”/”的都是相对路径,temp/preparePreferenceMatrix/itemIDIndex 其实是 HDFS中的/user/当前登陆的用户名/temp/preparePreferenceMatrix/itemIDIndex,如果报以上错误,删除这个临时文件就可以,也有另外一种办法:提交命令时指定新的临时文件目录(仅适用于本次提交):/opt/mahout-0.10.2/bin/mahout recommenditembased - -tempDir

    执行结果:

    1   [105:3.875,104:3.7222223,106:3.6]
    2   [106:2.9285715,105:2.5833333,107:2.0]
    3   [106:3.5,102:3.3333333,103:3.3125]
    4   [107:4.75,105:4.3333335,102:4.111111]
    5   [107:3.8333333]
    展开全文
  • 特征选择的三种方法

    2020-11-19 03:51:02
    特征选择的三种方法 • 包装方法(wrapper method)是“围绕”着特定的预测模型建立的。每个特征子集用来训练一个模型。训练得到的模型的泛化性能可以为该子集评分。包装方法是计算密集型的,但通常为特定模型提供...
  • 过滤器就是对输入的内容过滤,清除其中不符合过滤规则的内容,并将其余的内容返回的过程,对用户输入的内容...Zend_Filter中已经事先定义很多常用的过滤器子类。要使用这些过滤器,首先要加载相应的组件,然后为类
  • 常用的特征选择方法有以下三种(备注:以下代码采用Jupyter notebook编写,格式与传统稍有不同): 1、过滤式特征选择 简单理解就是过滤式特征选择通过选择与响应变量(目标变量)相关性度量(可能是相关系数,互...
  • VUE常用方法整理.pdf

    2020-03-28 22:56:18
    2. 常用的指令有哪些,及怎么使用这些指令 6 第四节 阐述vue单双向数据流及事件绑定 6 1. vue单向数据流绑定属性值 v-bind: (属性) 简写 :(属性) 6 2. vue双向数据流 v-model 只作用于有value属性的元素 7 3. 事件...
  • 这应该是很多人常用的方法,大型邮件服务商也会提供此类服务,但是仍不够精确。方法二、使用病毒过滤系统 很多垃圾邮件利用了木马病毒,你把病毒拒之门外,相关的垃圾邮件也就无机可乘了。 、保护自己的邮件地址...
  • 协同过滤是一减小信息过载的常用方法,但是它有方面限制,即准确性、数据稀疏性和可扩展性。提出一协同过滤算法来解决数据稀疏性问题,利用奇异值分解法结果来进行邻居选择,然后采用最近邻方法来...
  • 【机器学习】特征选择常用方法 整理

    千次阅读 多人点赞 2018-06-14 19:36:12
    特征选择 在实际工程中,对于特征变量的选取,往往是基于业务经验,也就是所谓你的先验知识。...特征选择的三类主流方法为:过滤式、包裹式、嵌入式。 一、过滤式 变量排序就是一典型的过滤方法,...
  • 这里主要是通过修改application.yml配置文件配置来配置过滤器,其配置方法与predicate断言配置差不多,有兴趣小伙伴可以看看我另外一篇博文:SpringCloud微服务中gateway网关使用()——predicates...
  • 协同过滤算法

    2021-03-16 16:13:52
    协同过滤算法是推荐算法中比较经典的算法,常用的协同过滤算法有三种 1.基于用户的推荐 2.基于商品的推荐 3.基于模型的推荐 基于用户的推荐 基于用户的推荐其基本原理为相似用户可以理解为有相似的物品喜好。 其评价...
  • 解决乱码方法总结

    千次阅读 2007-09-04 23:22:00
    对于Java由于默认的...前三种方法是我比较常用的方法,别人的经验告诉我:通常get方法通过改server.xml解决,post方法通过过滤器或者设置字符集解决,呵呵,不知道是否可行!1、utf8解决JSP中文乱码问题一般说来在每
  • (1): 什么是过滤器:过滤器是servlet2.3的一小型的,可插入的。...(2):如何编写过滤器:(1)编写一个java类实现filter接口(常用的接口是Filter,FilterChain,FilterConfig)该接口中包含个必须实现的方法
  • 1):代理模式(静态代理)点我下载三种模式源码 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组成...
  • Task 02:协同过滤

    2020-10-22 22:56:32
    Task 02:协同过滤 文章目录 Task 02:协同过滤一、协同过滤算法简介1. 基本思想2. 两基于邻域方法的算法二、相似性度量方法1....协同过滤(Collaborative Filtering)推荐算法是最经典、最常用的.
  • 3.1.2 相关性过滤方差挑选完毕之后,我们...在sklearn当中,我们有三种常用的方法来评判特征与标签之间的相关性:卡方,F检验,互信息3.1.2.1 卡方过滤卡方过滤是专门针对离散型标签(即分类问题)的相关性过滤。卡方...
  • 数据预处理-相关性过滤(卡方过滤)

    千次阅读 2019-09-25 11:47:25
    在sklearn当中,我们有三种常用的方法来评判特征与标签之间的相关性:卡方,F检验,互信息。 原来的分数如下图所示,可以看出,模型的效果降低了,这说明我们在设定k=300的时候删除了与模型相关...
  • 一、Shiro 支持有三种方式授权: 1、编程式:通过写 if/else 授权代码完成(不常用) 2、注解和配置式:通过执行 Java 方法放置相应注释或xml 配置完成,没有权限将抛出相应异常。(中小项目注解更常用,...
  • AspNet MVC过滤器+实例

    2015-09-24 15:45:36
    过滤器在请求管线注入额外的逻辑,提供简单优雅的方法实现横切点关注(AOP), 例如日志,授权,缓存等应用.通过AOP可以减少在实际的业务逻辑中参杂过多非直接业务逻辑...AspNet MVC中包含三种常用的过滤器分别是:Action
  • 二十三种设计模式【PDF版】

    热门讨论 2011-05-30 14:13:49
    者将面向对象思想巧妙融合在 Java 具体技术上,潜移默化让你感觉到了一语言和新思想方式诞生。 但是读完这本书,你对书中这些蕴含思想也许需要一更明晰更系统更透彻了解和掌握,那么你就...
  • 监听事件和过滤

    2018-10-05 00:03:00
    监听包括三种情况,分别是...常用的是implements servletContextListener(全局变量)两个方法 public void contextInitialized(ServletContextEvent arg0) arg0.getServletContext() Session监听事...
  • 三种常用的方法来评判特征与标签之间的相关性:卡方,F检验,互信息。 卡方过滤 专门针对离散型标签(即分类问题)的相关性过滤 卡方检验类feature_selection.chi2计算每个非负特征和标签之间的卡方统计量,并依照...
  • 目录Linux目录结构——树形目录结构常见子目录的作用cat命令—查看文件内容的(一般用于较小文件)示例more命令—查看...文本编辑器的作用2.vi编辑器的三种工作模式3.vi编辑器中常用命令 Linux目录结构——树形目录结构
  • VIM常用操作

    2015-05-03 10:46:23
    一,三种模式在普通模式中,有很多方法可以进入插入模式。比较普通方式是按a(append/追加)键或者i(insert/插入)键 在命令行模式中可以输入会被解释成并执行文本。例如执行命令(:键),搜索(/和?键)...
  • Java EE常用框架.xmind

    2020-06-19 16:08:35
    Java EE常用框架 WebService 介绍 基于Web服务。它使用Web(HTTP)方式,接收和响应外部系统某种请求。从而实现远程调用 术语 XML. Extensible Markup Language -扩展性标记语言 WSDL – ...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 311
精华内容 124
关键字:

常用的三种过滤方法