我想在使用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库,因为它明显更好.
提前致谢!
我正在调整Crossfilter库以显示我从奥运会收集的一些推文.我试图以两种方式扩展最初的例子:
我有部分(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) 我试图绘制一个沿大量维度变化的大散点图.
这是我的首发情节:
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)
很接近因为它得到了我想要的圆圈,但所有的点都得到了圆圈,我想把它限制在一些点上.
我非常感谢对此问题的任何建议.
我想用基于希腊符号的名称隐藏变量,并将它们转换为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)
提前致谢!
我在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库中有类似的方法或功能吗?或者我只需要用嵌套循环以丑陋的方式自己编写它?
我应该是一个简单的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解析一些生成不良的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解析器以正确解析此输入,就好像有关于属性值的引号一样.
谢谢你的任何建议!
scala ×3
javascript ×2
xml ×2
arrays ×1
combinations ×1
crossfilter ×1
d3.js ×1
dtd ×1
ggplot2 ×1
r ×1
syntax ×1
vim ×1