小编foz*_*eat的帖子

忽略scala中的DTD规范

我想在使用Scala解析xml文件时偶尔忽略dtd规范.我知道这可以通过java接口很容易地完成

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setValidating(false);
dbf.setFeature("http://xml.org/sax/features/namespaces", false);
dbf.setFeature("http://xml.org/sax/features/validation", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何使用Scala的xml库轻松完成此操作.如果可能的话,我想继续使用scala xml库,因为它明显更好.

提前致谢!

xml dtd scala

17
推荐指数
1
解决办法
8010
查看次数

使用Crossfilter和D3重绘直方图

我正在调整Crossfilter库以显示我从奥运会收集的一些推文.我试图以两种方式扩展最初的例子:

  1. 我不想显示基于原始数据集的航班列表,而是显示由crossfilter当前选中的项目键入的另一个数据集中的项目列表.
  2. 在不同的数据源之间切换并重新加载直方图和表格.

我有部分(1)按计划工作.但是,第(2)部分给了我一些麻烦.我正在通过选择要显示的新"运动"或选择新的摘要算法来更改数据集.切换其中任何一个时,我相信我应该首先删除先前创建和显示的过滤器,图表和列表,然后重新加载新数据.

然而,对于前端可视化来说有点新,特别是D3和Crossfilter,我还没弄清楚如何做到这一点,也不确定如何最好地表达这个问题.

在这里有一个问题的实例.选择Date上的范围然后从Archery切换到Fencing,然后选择reset会显示错误的一个很好的例子:并非所有新数据都被绘制.

在日期过滤时切换运动后的屏蔽数据的屏幕图像

如上所述,大部分代码都是从Crossfilter示例和关于进行径向可视化教程中提取的.以下是我认为相关的一些关键代码块:

选择新数据源:

d3.selectAll("#sports a").on("click", function (d) {
    var newSport = d3.select(this).attr("id");
    activate("sports", newSport);
    reloadData(activeLabel("sports"), activeLabel("methods"));
});                          

d3.selectAll("#methods a").on("click", function (d) {
    var newMethod = d3.select(this).attr("id");
    activate("methods", newMethod);
    reloadData(activeLabel("sports"), activeLabel("methods"));
}); 
Run Code Online (Sandbox Code Playgroud)

重新加载数据:

function reloadData(sportName, methodName) {
    var filebase = "/tweetolympics/data/tweet." + sportName + "." + methodName + ".all.";
    var summaryList, tweetList, remaining = 2;
    d3.csv(filebase + "summary.csv", function(summaries) {
        summaries.forEach(function(d, i) {
           d.index …
Run Code Online (Sandbox Code Playgroud)

javascript visualization d3.js crossfilter

15
推荐指数
1
解决办法
6327
查看次数

使用ggplot2修改点子集的形状

我试图绘制一个沿大量维度变化的大散点图.

这是我的首发情节:

 p <- ggplot(mtcars, aes(wt, mpg, shape=cyl, colour=gear, size=carb)) +
      geom_point()
Run Code Online (Sandbox Code Playgroud)

带有多个变量的样本图

使用mtcars数据集,我只是包括各种形状,颜色和大小.现在我要添加的是所有点的区别标记,碳水化合物== 8.例如,在这些点周围添加一个大的黑色圆圈.

p + geom_point() + geom_point(colour="black", shape=1, size=5)
Run Code Online (Sandbox Code Playgroud)

很接近因为它得到了我想要的圆圈,但所有的点都得到了圆圈,我想把它限制在一些点上.

我非常感谢对此问题的任何建议.

r ggplot2

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

Vim语法隐藏在上下文中

我想用基于希腊符号的名称隐藏变量,并将它们转换为Unicode等效符号,类似于vim-cute-python的工作原理.例如,我有这个

syntax match scalaNiceKeyword "alpha" conceal cchar=?
Run Code Online (Sandbox Code Playgroud)

在一个文件中定义,用于隐藏Scala文件,除了它过于激进外,效果很好.如果我写alphabet它然后被隐藏成为?bet,这是明显错误的.如何修改/扩展此隐藏语句,以便它只隐藏与"[_] alpha [_]"匹配的关键字,即我希望进行以下转换

alpha_1 => ?_1
alpha => ?
alphabet => alphabet
Run Code Online (Sandbox Code Playgroud)

注意:这与此问题类似,但由于我想要匹配的组环境是空格和下划线,因此它似乎稍微复杂一些.天真地定义如下所示的语法区域会使各种错误:

syn region scalaGreekGroup start="[ _]" end="[ _]"
Run Code Online (Sandbox Code Playgroud)

提前致谢!

syntax vim

6
推荐指数
1
解决办法
1623
查看次数

javascript数组中条目的成对组合

我在javascript中给出了一系列条目,例如:

var entries = ["cat", "dog", "chicken", "pig"];
Run Code Online (Sandbox Code Playgroud)

我现在想迭代它们的所有独特的成对组合.在这个例子中,我想看到:

("cat", "dog"),
("cat", "chicken"),
...
Run Code Online (Sandbox Code Playgroud)

在其他语言中,如scala,这非常简单.你这样做

entries.combinations(2)
Run Code Online (Sandbox Code Playgroud)

javascript库中有类似的方法或功能吗?或者我只需要用嵌套循环以丑陋的方式自己编写它?

javascript arrays combinations

5
推荐指数
2
解决办法
2272
查看次数

Scala搜索一个模糊的Main类

我应该是一个简单的scala脚本,如下所示:

object SaveTaggedSenseTask {                                                    
  def main(args:  Array[String]) {
    val reader:SenseEvalAllWordsDocumentReader = new SenseEvalAllWordsDocumentReader()
    reader.parse(args(0))                                                   
    println(reader.sentences)                                               
    reader.sentences()
  }
}
Run Code Online (Sandbox Code Playgroud)

SenseEvalAllWordsDocumentReader是一个java定义的类,它只是SAX解析器的包装器.调用句子应该只返回另一个名为Sentence的java定义类的java List.如果我使用运行此代码

scala -cp jar-with-everything.jar SaveTaggedSenseTask.scala path/to/file.xml
Run Code Online (Sandbox Code Playgroud)

我得到以下可怕的输出混乱:

java.lang.ClassNotFoundException: Main (args = /home/stevens35/senseEval/senseEval3-allwords/english-all-words.xml, classpath = /tmp/scalascript7300484879512233483.tmp:/usr/java/jdk1.6.0_26/jre/lib/resources.jar:/usr/java/jdk1.6.0_26/jre/lib/rt.jar:/usr/java/jdk1.6.0_26/jre/lib/jsse.jar:/usr/java/jdk1.6.0_26/jre/lib/jce.jar:/usr/java/jdk1.6.0_26/jre/lib/charsets.jar:/home/stevens35/devel/src/scala-2.9.1.final/lib/jline.jar:/home/stevens35/devel/src/scala-2.9.1.final/lib/scala-compiler.jar:/home/stevens35/devel/src/scala-2.9.1.final/lib/scala-dbc.jar:/home/stevens35/devel/src/scala-2.9.1.final/lib/scala-library.jar:/home/stevens35/devel/src/scala-2.9.1.final/lib/scalap.jar:/home/stevens35/devel/src/scala-2.9.1.final/lib/scala-swing.jar:/usr/java/jdk1.6.0_26/jre/lib/ext/sunjce_provider.jar:/usr/java/jdk1.6.0_26/jre/lib/ext/sunpkcs11.jar:/usr/java/jdk1.6.0_26/jre/lib/ext/localedata.jar:/usr/java/jdk1.6.0_26/jre/lib/ext/dnsns.jar:/home/stevens35/devel/C-Cat/wordnet/.:/home/stevens35/devel/C-Cat/wordnet/target/extendOntology-wordnet-1.0-jar-with-dependencies.jar:/home/stevens35/devel/C-Cat/wordnet/../data/target/extendOntology-data-1.0.jar)                                               
        at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:103)                                                                 
        at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:33)
        at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:40)
        at scala.tools.nsc.ScriptRunner.scala$tools$nsc$ScriptRunner$$runCompiled(ScriptRunner.scala:171)                                                       
        at scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:188)                                                                      
        at scala.tools.nsc.ScriptRunner$$anonfun$runScript$1.apply(ScriptRunner.scala:188)                                                                      
        at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply$mcZ$sp(ScriptRunner.scala:157)                                                      
        at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)                                                             
        at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)                                                             
        at scala.tools.nsc.util.package$.waitingForThreads(package.scala:26)
        at scala.tools.nsc.ScriptRunner.withCompiledScript(ScriptRunner.scala:130)                                                                              
        at scala.tools.nsc.ScriptRunner.runScript(ScriptRunner.scala:188)
        at scala.tools.nsc.ScriptRunner.runScriptAndCatch(ScriptRunner.scala:201)                                                                               
        at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:58)                                                                            
        at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:80)
        at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
        at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Run Code Online (Sandbox Code Playgroud)

我假设这意味着scala正在寻找一个名为Main的类而无法找到它,但我无法弄清楚为什么它甚至会想到这个.此外,如果我删除该reader.sentences()行,或执行类似调用的size()操作,问题就会消失.我只能猜测scala以某种方式推断出由于这个调用而存在一个名为Main的类,但我没有看到任何明显的解决方法.

思考?任何帮助是极大的赞赏.

scala scala-java-interop

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

在Scala中解析没有引号的XML

我正在尝试使用scala解析一些生成不良的xml代码,如下所示:

<contextfile concordance=brown>
<context filename=br-a01 paras=yes>
<p pnum=1>
<s snum=1> 
<wf cmd=ignore pos=DT>The</wf>
</s>
</p>
...
Run Code Online (Sandbox Code Playgroud)

结构良好,但正如您所看到的,任何attribube值都没有引号.使用下面的Scala片段简化打开文件会引发一个不那么令人惊讶的错误:

val semCor = XML.loadFile(args(0)) 
Run Code Online (Sandbox Code Playgroud)

org.xml.sax.SAXParseException: Open quote is expected for attribute "{1}" associated with an  element type  "concordance".
Run Code Online (Sandbox Code Playgroud)

我想知道如果可能的话,如何设置scala xml解析器以正确解析此输入,就好像有关于属性值的引号一样.

谢谢你的任何建议!

xml scala

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