小编Sti*_*lev的帖子

如何在Ruby中进行模糊子串匹配?

我找到了很多关于模糊匹配的链接,将一个字符串与另一个字符串进

我有一个非常长的字符串,它是一个文档和一个子字符串.子字符串来自原始文档,但已被多次转换,因此可能引入了奇怪的工件,例如此处的空格,字符串.子字符串将匹配原始文档中文本的一部分99%或更多.我不匹配以查看此字符串是哪个文档,我试图在文档中找到字符串开始的索引.

如果字符串是相同的,因为没有引入随机错误,我会使用document.index(substring),但是如果甚至有一个字符差异,则会失败.

我认为通过删除除字符串和子字符串中的az之外的所有字符来比较差异,然后使用压缩字符串时生成的索引将压缩字符串中的索引转换为真实文档中的索引.这种情况很好用,其中差异是空格和标点符号,但只要一个字母不同就失败了.

该文档通常是几页到一百页,而子串从几个句子到几页.

ruby string fuzzy-search

17
推荐指数
2
解决办法
9778
查看次数

你能改变ggplot2图形从正方形到矩形的比例吗?

geom_segment用来绘制活动的时间表.这一切都在同一条线上,因为我想将它与其他图形一起呈现,我宁愿使y轴更小.似乎ggplot2中灰色图形区域的大小总是正方形,无论我是将其缩放还是更大.有没有办法说我想要x = 500 y = 50或类似的东西?

df2 <- structure(list(Activities =
                      structure(c(2L, 1L, 2L, 1L, 2L, 3L, 1L, 2L, 2L, 2L, 2L, 5L,
                                  4L, 3L, 2L, 2L), 
                                .Label = c("authoring", "hacking", "learning", 
                                           "surfing", "tasks"), 
                                class = "factor"), 
                      Start = c(14895L, 15005L, 16066L, 16226L, 16387L, 16394L,
                                27030L,27532L, 27600L, 27687L, 28660L, 28713L, 
                                29154L, 30264L, 30345L, 32245L), 
                      End = c(15005L, 16066L, 16226L, 16387L,16394L, 16509L, 
                              27491L, 27591L, 27628L, 28450L, 28704L, 29109L, 
                              30250L, 30345L, 31235L, 33794L)),
                 .Names = c("Activities", "Start", "End"), 
                 class = "data.frame", …
Run Code Online (Sandbox Code Playgroud)

timeline r ggplot2

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

模糊文档匹配/文本指纹识别的最佳库

我正在考虑构建一个API,让程序提交学术出版物的"指纹",将其与Open Access期刊的文章数据库相匹配,如果找到,则向用户发送规范引文信息.最初这将是一个特定的小型研究领域,所以它不一定需要处理2000万篇论文才能获得成功(即使该领域最常引用的1000篇论文被覆盖,这对生产力来说也是一个巨大的好处和合作).

我想知道哪个库(理想情况下能与Ruby接口)最适合做这个"指纹识别".我已经看过Lucene的模糊匹配,但这似乎适用于单词级别,而在这种情况下,我们可能想要提交更大的文档子集.进行模糊匹配的原因是有些人可能有Word.doc预印本,有些人可能有最终的PDF等.

我真的很感激这里的一些想法.谷歌搜索"感性哈希"让我进入一堆新材料.我试着在这里总结一下我的许多发现.

看起来像SimHash,例如C实现将是要走的路,但我还需要进行更多实验.

ruby full-text-search fingerprint string-matching

10
推荐指数
1
解决办法
2349
查看次数

流星找不到重新导出的模块

我正在使用ES6编写一个Meteor应用程序,我有许多子组件,我想将它们保存为单独的npm软件包.我有一个名为frog-utils的库,它在所有包中共享,并包含常见的帮助函数.

当我尝试在frog-utils中重新导出模块时,它可以在普通节点上正常工作,但Meteor抱怨说:

W20161114-10:12:17.483(1)? (STDERR) Error: Cannot find module './color_range'
W20161114-10:12:17.484(1)? (STDERR)     at require (packages/modules-runtime.js:109:19)
W20161114-10:12:17.484(1)? (STDERR)     at meteorInstall.node_modules.frog-utils.dist.index.js (packages/modules.js:17407:20)
Run Code Online (Sandbox Code Playgroud)

(这是来自普通节点的示例,在同一目录中)

~/s/F/frog (ac-collab) $ node
> frogutils = require('frog-utils')
{ color_range: [Getter],
  uuid: [Function: uuid],
  currentDate: [Function: currentDate],
  booleanize: [Function: booleanize],
  shorten: [Function: shorten],
  compose: [Function: compose],
  composeReducers: [Function: composeReducers],
  notEmpty: [Function: notEmpty],
  identity: [Function: identity],
  getKey: [Function: getKey] }
Run Code Online (Sandbox Code Playgroud)

我在ES6中编写,使用Babel创建模块公开的输出文件,ES5对我来说似乎很好:

var _color_range = require('./color_range');

Object.defineProperty(exports, 'color_range', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_color_range).default;
  }
});
Run Code Online (Sandbox Code Playgroud)

(这是我使用的ES6系列)

export {default …
Run Code Online (Sandbox Code Playgroud)

javascript node-modules meteor babeljs

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

如何在Shiny中自动"缩小"ggplot?

我使用Shiny和Likert-library输出ggplot2对象,以交互方式显示答案分布.用户可以选择要绘制的问题组(每组有不同数量的问题),以及要分组的问题.这意味着总共会出现"酒吧"数量的多样性.

如果我将高度设置保留为自动(默认),则图形变得不可能拥挤.

在此输入图像描述

似乎有两种方式来调整高度 - 在ui.R,我可以调整"视口"的大小,以及在调用renderPlot,我可以指定图表的高度(如果它比视高,有一个滚动条).如果我指定一个更宽敞的图表,上面的图表看起来很棒:

在此输入图像描述

然而,当我回到一个较少的替代品的问题时,他们变得伸展看起来很荒谬:

在此输入图像描述

有没有办法让条形有一个恒定的宽度,无论它们有多少,并且图形动态调整大小而不必根据元素的数量计算特定的高度?

r ggplot2 shiny

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

如何使用Flowtype检查Meteor中的Mongo集合?

我正在试验在Meteor + React应用程序中使用Flowtype.向我的各种函数和类添加类型似乎运行良好,但我真的想要键入 - 检查对不同集合的访问.

我们的想法是指定集合"Books"中的所有项至少具有某些字段(定义为Array类型),理想情况是每当它从Mongo读取数据时验证它(至少在开发中),然后它会知道如果我做了

const a = Meteor.books.findOne(id)
Run Code Online (Sandbox Code Playgroud)

然后a将有类型书.

目前我通过Meteor.createCollection和Meteor.find().fetch()或Meteor.findOne()访问数据.

欢迎提出意见!

javascript mongodb meteor flowtype

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

如何为pbcopy生成富文本链接

我一直在播放一个脚本,该脚本在Chrome中选择文本并在Google中查找,提供四个首选,然后粘贴相关链接.它以不同的格式粘贴,具体取决于当前在Chrome中打开的页面 - DokuWiki格式,DokuWiki打开,HTML与普通网站,我想要WordPress WYSIWYG编辑器的富文本.

我试图用来pbpaste -Prefer rtf查看粘贴板上没有其他样式的富文本链接,但它仍然输出纯文本.在文本编辑中保存文件并进行实验后,我想出了以下内容

text = %q|{\rtf1{\field{\*\fldinst{HYPERLINK "URL"}}{\fldrslt TEXT}}}|
text.gsub!("URL", url)
text.gsub!("TEXT", stext)
Run Code Online (Sandbox Code Playgroud)

(我不得不使用gsub,因为不知何故在使用%Q#{}插入变量时,字符串不起作用)

但是,当我粘贴它时,链接之前和之后还有一个额外的换档符号.字符串会是什么样的,以避免这种情况?

ruby macos clipboard rtf

5
推荐指数
1
解决办法
1847
查看次数

如何自动将BibTex引用转换为Zotero可解析的内容?

我有一个引用系统,它将用户注释发布给wiki(Researchr).以编程方式,我可以访问每个条目的完整BibTeX记录,并且还在各个页面上显示它(例如 - 单击BibTeX).这有利于使其他引文管理员的用户能够自动导入他们感兴趣的论文的引用.我还希望其他引文管理员,特别是Zotero,能够自动检测和导入引文.

Zotero 列出了许多公开元数据的方法,包括RDF,COiNS,Dublin Core和unAPI的元标记.是否有一个Ruby库可以自动将BibTeX转换为任何这些标准 - 或者是一个Javascript库?我可能会创建一些东西,但如果存在某些东西,它会更强大(BibTeX有这么多的出版物类型和字段等).

ruby rdf bibtex dublin-core meta-tags

5
推荐指数
1
解决办法
698
查看次数

无需在Clojure中使用引号即可轻松处理文本?

我正在玩REPL中的文本解析,有时想把一堆数据转换成字符串,无论是bibtex条目还是某些EBNF符号等.通常字符串中可能有引号,而且非常乏味且容易出错,必须手动逃脱它们..

有没有其他方法可以做到这一点,比如Ruby %Q|I可以使用"Quotation Marks"|或者heredocs等等?或者是否可以编写宏或修改阅读器以启用此功能?

string escaping clojure read-eval-print-loop

5
推荐指数
1
解决办法
2034
查看次数

管道流动中的并行处理

我非常喜欢管道/管道的概念,用于将操作应用于流式IO源.我感兴趣的是构建适用于非常大的日志文件的工具.从Python/Ruby迁移到Haskell的一个吸引人的地方是编写并行代码的简单方法,但我找不到任何这方面的文档.我怎么能设置一个管道流来读取文件中的行并且并行处理它们(即有8个核,它应该读取8行,然后将它们移交给8个不同的线程进行处理,然后再次收集等),理想情况下尽可能少的"仪式"......

可选地,可以注意线是否需要按顺序重新加入,如果这可能影响过程的速度?

我确信可以使用Parallel Haskell书中的想法自己拼凑一些东西,但在我看来,在Conduit工作流程中间并行(parmap等)运行纯函数应该非常简单?

haskell conduit

5
推荐指数
1
解决办法
997
查看次数