- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我目前正在构建一个分类管道,此时 corenlp 词形还原器似乎是一个相当重要的瓶颈。我试图弄清楚我的词形还原的方式是否导致速度变慢,或者词形还原总体上是否很慢。
这是我当前的代码:
def singleStanfordSentenceToLemmas(sentence: String): Seq[String] = {
val doc = new Annotation(sentence)
pipeline.annotate(doc)
val tokens = doc.get(classOf[TokensAnnotation]).toList
tokens.par.foldLeft(Seq[String]())(
(a, b) => {
val lemma = b.get(classOf[LemmaAnnotation])
if (!(stopWords.contains(b.lemma().toLowerCase) || puncWords.contains(b.originalText())))
a :+ lemma.toLowerCase
else a
}
)
}
这是创建管道的代码
val props = new Properties()
props.put("annotators", "tokenize, ssplit, pos, lemma")
val pipeline = new StanfordCoreNLP(props)
我目前的理论是
a) 事实上,我使用的是成熟的 coreNLP 对象,它带来了大量的开销,从而减慢了一切。也许有一个更简单的类,只进行词形还原?
b)事实上,词形还原器需要 ssplit,并且 POS 标记似乎非常激烈,因为我只给它单独的句子,是否有更有效的方法来查找单个单词的引理?
c) 也许 corenlp 只是慢,可能有更快的词形还原器。
任何帮助将不胜感激!
最佳答案
a) 是的,那里肯定有开销。您可以摆脱其中的一些,但 CoreNLP 在我看来,在将核心 Pipeline Wrappers 与底层、更直接的实体分离方面似乎相当不一致。但您可以这样做:
import edu.stanford.nlp.process.Morphology
val morph = new Morphology()
...
morph.stem(label)
你还需要类似的东西
private lazy val POSTagger =
new MaxentTagger("edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger")
之前标记过 POS,但我认为这会让您走上正轨。
b) 你不会轻易摆脱这一切。 CoreLabel
是 CoreNLP 周围的主要数据结构,用于向相同元素添加越来越多的数据。因此,词形还原会将引理添加到相同的结构中。词性还原器将使用词性标记来区分名词、动词等,并且也会从那里选择词性标记。
c) 是的,情况也是如此。如何处理这个问题因你的意图和背景而异。例如,我在 Spark 中使用 CoreNLP 来利用分布式集群的全部功能,并且我还预先计算和存储其中一些数据。我希望这能给您一些见解。
关于performance - 句子词形还原的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488504/
我以这种方式恢复了 merge 提交(功能->开发): git revert -m 1 git push origin develop 已创建新提交 Revert "Merge branch 'fe
我确信我得到了一个很好的答案 my previous question因为我之前从那些发帖的人那里得到了很多关于其他问题的帮助。 但我显然做错了什么,因为当我复制示例代码时,对象检查器向我显示的 My
我现在处于一个非常愚蠢的境地。使用 git-hub for windows 我已经恢复了我最近的两个本地提交,我无法撤消这个(恢复命令)。很多代码都没有了。是否可能恢复还原的提交?我是 git 的新手
我正在使用 TortoiseGit。我想恢复到删除几张图片之前的某个时间点。 我该怎么做,我看到的还原方法是不正确的.... 最佳答案 右键单击您的工作目录并从 TortoiseGit 菜单中选择显示
我们使用 Terraform 在 AWS 中创建所有资源。如果一切按计划进行,那将很方便。但是,我们确实必须考虑出现问题的时间。我们有一个问题是 RDS 实例。它由 Terraform 创建和跟踪。在
跟在后面有什么区别? (右键单击项目文件夹)更新到修订版 XXX (右击日志列表)恢复到这个版本 (右键单击日志列表)还原此修订版的更改 最佳答案 (右键单击项目文件夹)更新到修订版 XXX Your
我不知何故搞砸了我的观点,我想重置它们,但是重置按钮是灰色的。有谁知道会导致这种情况的原因吗? 我希望我有更多的信息,但我真的只知道这些。 最佳答案 转到窗口菜单 => 重置透视图。 编辑: 该选项可
我有一个具有多用户登录功能的应用程序。现在,我为登录功能创建了 redux 存储。如果用户登录,根据其类型,它将重定向到特定的仪表板。如果学生用户登录,他应该只能访问学生仪表板,他不应该能够访问其他仪
我已经恢复了一些更改。需要知道之前恢复的代码中的文件和更改(差异)。 最佳答案 是的,正如 ElpieKay 所说,您可以使用 git log --grep='Revert' 。 还有一个默认消息“
出现错误 ERROR in [at-loader] ./src/app/components/partials/userPartial.tsx:101:33 TS2339: Property 'lev
我不明白为什么主 JS 文件不想从 './actions' 导入 todo 而不带括号? todos from './reducers' 类似的情况,import 没有任何问题。 主 js 文件: i
我像这样以编程方式应用 AngularJS 过滤器: filtered = $filter('number')(value, 2); 这会给我类似 5,000.00 的东西。我需要一种方法来获取过滤后
我正在尝试在我的应用中实现 Redux。所以,我创建了 action、reducer、store 等……现在我必须将状态传递给 reducer 并更改此参数( bool 值)的值。我不知道我做错了什么
我有一个带有如下 DIV 的跨度: Here is my 现在我可以将我的内容设置为跨度,例如: $(.span.foo).text("This removed my inn
我也想将另一个数据库名称下的特定数据库还原到另一台服务器。到目前为止,还不错。 我使用了这个命令: pg_dump -U postgres -F c -O -b -f maindb.dump main
有没有办法回滚上次的提交,放到单独的分支中,以供以后测试?我做了一些我不想完全丢弃的更改,我只是想将它们放在不同的分支中以供进一步测试。 谁能帮我解决这个问题? 最佳答案 是的,您可以实现这一点 -
开发人员正在对两个文件进行小的更改。但是在这次提交期间,他遇到了 merge 冲突,删除了很多东西(可能没有最新的版本)。然后它被推送到共享仓库,其他一些开发人员做了一些其他提交。 现在,我们注意到
git revert 是如何使用的? 这听起来像是一个重复的问题,但当人们问它时,回答通常是,按照 Revert to a commit by a SHA hash in Git? 使用 git re
Cloudflare 已修复其免费开源 CDNJS 中的一个严重漏洞,该漏洞可能影响互联网上 12.7% 的网站。 CDNJS为数百万网站提供超过4000个JavaScript和CSS库,这些库公
为了安全起见,需要经常对数据库作备份,或者还原。对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出、导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMy
我是一名优秀的程序员,十分优秀!