小编Yon*_*tan的帖子

文本相似度算法

我有两个字幕文件.我需要一个函数来告诉它们是代表相同的文本还是相似的文本

有时只有一个文件中有"风正在吹......音乐在播放"的评论.但80%的内容都是一样的.该函数必须返回TRUE(文件代表相同的文本).有时会出现像1而不是l(1 - L)这样的拼写错误: 她只能放行李.当然,这意味着函数必须返回TRUE.

我的评论:
该函数应返回文本相似度的百分比 - 同意

"所有人都很开心"和"所有人都不开心" - 这里被认为是拼写错误,因此被视为同一文本.确切地说,函数返回的百分比将更低,但足够高以表示短语是相似的

请考虑是否要在整个文件或搜索字符串上应用Levenshtein - 不确定Levenshtein,但算法必须作为一个整体应用于文件.不过,这将是一个很长的字符串.

java text nlp similarity levenshtein-distance

14
推荐指数
2
解决办法
1万
查看次数

使用MockMvc的Hamcrest:检查该键是否存在但值可能为null

我正在使用MockMvc进行一些测试,我想验证JSON响应的结构.具体来说,我想确保属性的键存在,并且该值是某个类型或null.

{
   "keyToNull": null,  # This may be null, or a String
   "keyToString": "some value"
}
Run Code Online (Sandbox Code Playgroud)

以下对我有用,但我想知道是否有办法将每组两个期望合并为一行,因为我有很多要检查的属性:

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.hamcrest.Matchers.*;

.andExpect(jsonPath("$").value(hasKey("keyToNull")))
.andExpect(jsonPath("$.keyToNull").value(
                  anyOf(any(String.class), nullValue(String.class))))

.andExpect(jsonPath("$").value(hasKey("keyToString")))
.andExpect(jsonPath("$.keyToString").value(
                  anyOf(any(String.class), nullValue(String.class))))
Run Code Online (Sandbox Code Playgroud)

hasKey()是必要的,因为另一个断言本身通过,因为MockMvc的实现映射中不存在的键映射为null:

.andExpect(jsonPath("$.notAKey").value(
                  anyOf(any(String.class), nullValue(String.class)))) // ok
Run Code Online (Sandbox Code Playgroud)

jsonPath().exists()也不起作用,因为在内部它比较了价值null.

我考虑过这样一个单独的方法:

private static <T> void assertNullableAttr(ResultActions res, String jsonPath, Class<T> type) throws Exception {
    int split = jsonPath.lastIndexOf('.');
    String prefix = jsonPath.substring(0, split), key = jsonPath.substring(split+1);

    res.andExpect(jsonPath(prefix).value(hasKey(key)))
        .andExpect(jsonPath(jsonPath).value(anyOf(any(type), nullValue(type))));
    }
Run Code Online (Sandbox Code Playgroud)

但后来它迫使我以不自然的方式分割我的代码:

ResultActions res = mockMvc.perform(get("/api"))
    // these …
Run Code Online (Sandbox Code Playgroud)

java hamcrest jsonpath mockmvc

9
推荐指数
3
解决办法
2万
查看次数

在GAE上上传Resteasy multipart/data-form文件

我正在尝试使用resteasy 2.0.1.GA将带有文件的表单上传到GAE应用程序中,使用我如何使用jax-rs上传多部分/表单文件建议的方法

的index.html

<form action="/rest/upload" method="post" enctype="multipart/form-data">
  <input type="text" name="name" />
  <input type="file" name="file" />
  <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

Rest.java

@Path("")
public class Rest {
    @POST
    @Path("/rest/upload")
    @Consumes("multipart/form-data")
    public String postContent(@MultipartForm UploadForm form) {
        System.out.println(form.getData().length);
        System.out.println(form.getName());
        return "Done";
    }
}
Run Code Online (Sandbox Code Playgroud)

UploadForm.java

public class UploadForm {

    private String name;
    private byte[] data;

    @FormParam("name")
    public void setPath(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    @FormParam("file")
    public void setContentData(byte[] data) {
        this.data = data; …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine file-upload resteasy

7
推荐指数
2
解决办法
1万
查看次数

在由@ResourceDependency加载的Javascript文件中获取EL

@ResourceDependency在JSF组件中使用注释将Javascript和CSS文件添加到我的JSF页面中.

在我的Javascript文件中,我需要引用另一个资源文件(.swf文件,位于META-INF/resources中,如JSF所要求的).我试图#{resource['swf:file.swf']}在我的javascript代码中放置EL表达式,但它不会得到解决.

为了exacmle,对于服务器中的以下JS文件:

var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");
Run Code Online (Sandbox Code Playgroud)

浏览器得到:

var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");
Run Code Online (Sandbox Code Playgroud)

这是错的.

当我在CSS文件中放入相同的EL时,它会得到正确解析.对于服务器中的以下CSS文件:

.instance-css-class {
  background: url("#{resource['swf:file.swf']}")
}
Run Code Online (Sandbox Code Playgroud)

浏览器得到:

.instance-css-class {
  background: url("/webapp/javax.faces.resource/file.swf.jsf?ln=swf")
}
Run Code Online (Sandbox Code Playgroud)

这正是我需要的,但在JS文件中.

显然,我可以使用CSS作为问题的解决方法(创建一个DOM元素,将CSS类附加到它,然后读取并解析所需的样式属性).但是,是否有更优雅的方式来实现它?它是JSF库中的一个错误(我使用Mojarra 2.0.3,使用Jboss 6.1),还是有这种行为的原因?

请介意上面的代码是一个标签库的一部分,所以解决方法,例如那些无法使用.


编辑 - 似乎CSS解决方法不可行,因为我看不到从CSS文件获取CSS属性的方法.因此,任何(工作)解决方案也将很乐意接受.

javascript java el jsf-2

7
推荐指数
1
解决办法
815
查看次数