小编pd1*_*176的帖子

使用spaCy进行POS标记

我正在尝试使用Python中的spaCy模块进行POS标记.

这是我的相同代码

from spacy.en import English, LOCAL_DATA_DIR
import spacy.en
import os

data_dir = os.environ.get('SPACY_DATA', LOCAL_DATA_DIR)
nlp = English(parser=False, tagger=True, entity=False)


def print_fine_pos(token):
    return (token.tag_)

def pos_tags(sentence):
    sentence = unicode(sentence, "utf-8")
    tokens = nlp(sentence)
    tags = []
    for tok in tokens:
        tags.append((tok,print_fine_pos(tok)))
    return tags

a = "we had crispy dosa"
print pos_tags(a)
Run Code Online (Sandbox Code Playgroud)

输出:

[(We , u'PRP'), (had , u'VBD'), (crispy , u'NN'), (dosa, u'NN')]
Run Code Online (Sandbox Code Playgroud)

在这里,它返回crispy作为名词而不是形容词.但是,如果我使用类似的测试句子

a="we had crispy fries"
Run Code Online (Sandbox Code Playgroud)

它认识到脆皮是一个形容词.这是输出:

[(we , u'PRP'), (had , u'VBD'), (crispy , u'JJ'), (fries, u'NNS')] …
Run Code Online (Sandbox Code Playgroud)

python nlp spacy

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

如何使用nltk正则表达式模式来提取特定的短语块?

我写了以下正则表达式来标记某些短语模式

pattern = """
        P2: {<JJ>+ <RB>? <JJ>* <NN>+ <VB>* <JJ>*}
        P1: {<JJ>? <NN>+ <CC>? <NN>* <VB>? <RB>* <JJ>+}
        P3: {<NP1><IN><NP2>}
        P4: {<NP2><IN><NP1>}

    """
Run Code Online (Sandbox Code Playgroud)

此模式将正确标记短语,例如:

a = 'The pizza was good but pasta was bad'
Run Code Online (Sandbox Code Playgroud)

并提供2个短语的所需输出:

  1. 披萨很好吃
  2. 面食很糟糕

但是,如果我的句子是这样的:

a = 'The pizza was awesome and brilliant'
Run Code Online (Sandbox Code Playgroud)

仅匹配短语:

'pizza was awesome' 
Run Code Online (Sandbox Code Playgroud)

而不是所期望的:

'pizza was awesome and brilliant'
Run Code Online (Sandbox Code Playgroud)

如何在我的第二个例子中加入正则表达式模式?

python regex nlp nltk text-chunking

9
推荐指数
1
解决办法
7179
查看次数

chrome.extension.getBackgroundPage在iframe的扩展页面中未定义

我正在尝试使用chrome.extension.getBackgroundPage函数访问我的扩展程序的后台页面.

但是,我收到以下错误:

未捕获的TypeError:chrome.extension.getBackgroundPage不是函数

我打电话从我的函数bar.js文件,该文件被定义为web_accessible_resource在我manifest.json

我如何使其工作?

的manifest.json

{
  "manifest_version": 2,
  "name": "XPath Helper",
  "version": "1.0.13",
  "description": "Extract, edit, and evaluate XPath queries with ease.",
  "background": {
    "page": "background.html"
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "css": ["content.css"],
      "js": ["content.js"]
    }
  ],
  "permissions": ["http://*/", "tabs", "identity", "identity.email"],
  "icons": {
    "32": "static/icon32.png",
    "48": "static/icon48.png",
    "128": "static/icon128.png"
  },
  "web_accessible_resources": [
    "bar.css",
    "bar.html",
    "bar.js"
  ]
}
Run Code Online (Sandbox Code Playgroud)

bar.js是一个内部脚本bar.html(不是内容脚本):

// ...

document.addEventListener('DOMContentLoaded',function(){
  // previosuly chrome.extension.getBackgroundPage()
  chrome.runtime.getBackgroundPage(function(page){ …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension

4
推荐指数
1
解决办法
5043
查看次数

获取子串忽略数字索引

我有以下两个字符串:

var block = "//div[@class='gd-row browse-grid-row'][1]/div[@class='gd-col gu3'][1]/div"

var full =  "//div[@class='gd-row browse-grid-row'][1]/div[@class='gd-col gu3'][2]/div[@class='product-unit unit-4 browse-product new-design ']/div[@class='pu-details lastUnit']/div[@class='pu-price']/div[@class='pu-border-top']/div[@class='pu-final']/span"
Run Code Online (Sandbox Code Playgroud)

我需要检查块是否是完全忽略所有索引的子串.

基本上我想忽略表单的所有模式:

'[数]'

检查子字符串时.我如何在JavaScript中执行此操作?

javascript string

4
推荐指数
1
解决办法
54
查看次数

计数选项集合中出现次数的惯用方式

我想计算选项集合中某个值出现的次数。

let v = vec![Some(1), Some(1), Some(3), None];
v.iter()
 .filter(|Some(x)| x == &1)
 .count();
Run Code Online (Sandbox Code Playgroud)

这样做会refutable pattern not covered产生有意义的错误。

我通过这样做解决了

v.iter()
 .filter(|x| x.is_some() && x.unwrap() == &1)
 .count()
Run Code Online (Sandbox Code Playgroud)

锈蚀的惯用方式是什么?

idiomatic rust

4
推荐指数
1
解决办法
137
查看次数

python 精确子串匹配

我有一份菜品清单和一句话。

我想检查句子中是否存在菜肴。但是,如果我做一个正常的

if dish in sentence:
Run Code Online (Sandbox Code Playgroud)

我基本上会得到一个子字符串匹配。我的问题是说我有一个

dish='puri'
sentence='the mutton shikampuri was good'
Run Code Online (Sandbox Code Playgroud)

上面的代码仍然将 puri 与 shikampuri 匹配,这是我不想要的。

如果我尝试标记该句子,我将无法匹配诸如菜肴='puri bhaji'之类的菜肴

有什么方法可以忽略不以我的菜肴字符串开头的匹配项吗?基本上,当我的菜是“puri”时,我想忽略“shikampuri”之类的模式。

python regex

3
推荐指数
1
解决办法
2677
查看次数

用单个fullstop替换多个fullstops

如何使用单个完整停止替换多个句点,以便NLTK句子标记器可以将它们区分为2个不同的句子

例如

a = "the food was good...what about the bread huh..Awesome"
Run Code Online (Sandbox Code Playgroud)

如果我使用

nltk.sent_tokenize(a)

它给了我

['the food was good...what about the bread huh..Awesome']
Run Code Online (Sandbox Code Playgroud)

但我想要的是

['the food was good.', 'what about the bread huh.', 'Awesome']
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

python regex nltk

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

从字母数字字符串中删除数值

我想从字符串中删除所有数值但仅当字符串包含至少一个字母时.

我怎样才能在JavaScript中执行此操作?

例如

var s = "asd23asd"
Run Code Online (Sandbox Code Playgroud)

那么结果必须是asdasd

但是如果

var s = "123123"
Run Code Online (Sandbox Code Playgroud)

然后结果必须是123123,因为字符串没有任何字母.

javascript regex

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

使用msgpack编码时,JavaScript对象的Rust等效项是什么?

我正在尝试移植一个使用msgpack将JavaScript对象编码为Rust 的JavaScript 。我找到了一个用于msgpack编码/解码的Rust库,但是我没有得到Rust中的等效输入格式。

这个用于编码对象的JavaScript代码{"a": 5, "b": 6} 给出了输出82 a1 61 03 a1 62 05

const msgpack = require("msgpack-lite");
msgpack.encode(obj);
Run Code Online (Sandbox Code Playgroud)

我尝试将对象表示为Rust结构并使用rmp-serde库对其进行编码

use rmp_serde::{Deserializer, Serializer};
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct Test {
    a: u32,
    b: u32,
}

fn main() {
    let mut buf = Vec::new();
    let val = Test { a: 3, b: 5 };
    val.serialize(&mut Serializer::new(&mut buf)).unwrap();
    println!("{:?}", buf);
}
Run Code Online (Sandbox Code Playgroud)

我得到了输出[146, 3, 5]。如何在Rust中表示JSON输入?

rust msgpack

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