小编Sla*_*off的帖子

无论时态或形式如何,我如何匹配单词?

我目前正在编写一个运行文档的脚本,提取所有关键字,然后尝试将这些关键字与其他文档中的关键字进行匹配.有一些细节使这个问题复杂化,但它们与我的问题不太相关.基本上我希望能够匹配单词而不管它们出现的时态.

例如:如果给出字符串"游泳","游泳"和"游泳",我想要一个程序,可以识别这些都是相同的单词,但它是否会存储游泳,游泳或游泳等单词对我而言非常重要.

我知道这个问题可以通过包含所有这些单词形式的字典来解决,但我不知道任何以这种方式映射的字典对此有用.我更喜欢与Python兼容的解决方案或库,因为这是我目前用于此脚本的内容,但我可以使用几乎任何语言的解决方案(除了haskell或eiffel或类似的模糊/难以与...合作)

python nlp nltk string-matching

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

UnicodeDecodeError,ascii处理python中的Snowball词干算法

我在将常规文件读入我已编写的程序时遇到一些麻烦.我目前遇到的问题是pdf基于某种突变的utf-8,其中包括一个BOM,它会在我的整个操作中引发一个问题.在我的应用程序中,我正在使用需要ascii输入的Snowball词干算法.有许多主题涉及到为utf-8解决错误,但是没有一个涉及将它们发送到Snowball算法,或者考虑ascii是我想要的最终结果.目前我使用的文件是使用标准ANSI编码的记事本文件.我得到的具体错误信息是这样的:

File "C:\Users\svictoroff\Desktop\Alleyoop\Python_Scripts\Keywords.py", line 38, in Map_Sentence_To_Keywords
    Word = Word.encode('ascii', 'ignore')
UnicodeDecodeError: 'ascii' codec can't decode byte 0x96 in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我的理解是在python中,包括ignore参数只会传递遇到的任何非ascii字符,这样我就会绕过任何BOM或特殊字符,但显然不是这种情况.调用的实际代码在这里:

def Map_Sentence_To_Keywords(Sentence, Keywords):
    '''Takes in a sentence and a list of Keywords, returns a tuple where the
    first element is the sentence, and the second element is a set of
    all keywords appearing in the sentence. Uses Snowball algorithm'''
    Equivalence = stem.SnowballStemmer('english')
    Found = []
    Sentence = re.sub(r'^(\W*?)(.*)(\n?)$', r'\2', Sentence)
    Words = Sentence.split()
    for …
Run Code Online (Sandbox Code Playgroud)

python regex encoding byte-order-mark python-unicode

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

从python中的while循环内部返回值

我不知道这是一个简单的问题还是不可能的问题,但我找不到任何关于它的东西,所以我想我会问它。

当循环仍在运行时,是否可以从 while 循环返回值?基本上我想要做的是让一个向量在一个 while 循环中不断更新,但能够在不停止 while 循环的情况下在被询问时返回值。这可能吗?我是否只需要分解程序并将 while 循环放在一个单独的线程中,还是可以在一个函数中完成?

此外,我更喜欢一种计算量不高(显然)的方法,并且与速率限制的 while 循环兼容,因为这个方法肯定会受到速率限制。

同样,如果这是一个愚蠢的问题,请告诉我,我会删除它,但我无法找到有关此问题的文档。

我正在尝试使用以下代码来实现这一点:

def update(self, x_motion, y_motion, z_motion):
        self.x_pos += self.x_veloc
        self.y_pos += self.y_veloc
        self.z_pos += self.z_veloc
        self.x_veloc += self.x_accel
        self.y_veloc += self.y_accel
        self.z_veloc += self.z_accel
        self.x_accel = x_motion[2]
        self.y_accel = y_motion[2]
        self.z_accel = z_motion[2]
while True:
self.update(x_motion, y_motion, z_motion)

print vector.x_accel
Run Code Online (Sandbox Code Playgroud)

至少在这些方面。重要的是这些在 while 循环之外返回,以便 while 循环在后台运行,但它只在被询问时才给出结果,或者类似的东西。

python real-time while-loop

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

无法在scrapy中导入项目

我有一个非常基本的蜘蛛,遵循入门指南中的说明,但由于某种原因,尝试将我的项目导入我的蜘蛛会返回错误.蜘蛛和物品代码如下所示:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from myProject.items import item

class MyProject(BaseSpider):
    name = "spider"
    allowed_domains = ["website.com"]
    start_urls = [
        "website.com/start"
    ]

    def parse(self, response):
        print response.body

from scrapy.item import Item, Field

class ProjectItem(Item):
    title = Field()
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时scrapy要么找不到我的蜘蛛,要么无法导入我的items文件.这里发生了什么?这应该是一个正确运行的例子吗?

python module scrapy web-scraping

3
推荐指数
2
解决办法
8477
查看次数

查找列表中每个项目的Python NLTK Wordnet Synsets

我一直在学习基本的python,但我是NLTK的新手.我想使用nltk为给定的单词列表提取下位词.当我手动输入每个术语时,它工作正常,但当我尝试迭代列表项时它似乎不起作用.

这有效:

from nltk.corpus import wordnet as wn

syn_sets = wn.synsets("car")

for syn_set in syn_sets:
    print(syn_set, syn_set.lemma_names())
    print(syn_set.hyponyms())
Run Code Online (Sandbox Code Playgroud)

但是我如何使用Wordnet方法处理像这样的项目列表

token = ["cat", "dog", "car"]
syn_sets = wn.synsets((*get each item from the list*))
Run Code Online (Sandbox Code Playgroud)

在一个循环?

谢谢!

python machine-learning nltk wordnet python-3.x

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

java中的对象扩展

在java中如果你有一个对象需要一个泛型来扩展一个特定的类,但你想用它的扩展来实现它有没有办法让java知道你实际上并没有违反自己的规则?下面的示例代码假设没有意义.

public interface WantedInterface extends StaticInterface<WantedObject>

public class WantedObject extends OlderObject

public class OlderObject extends UsefulObject

public interface StaticInterface<T extends UsefulObject>
Run Code Online (Sandbox Code Playgroud)

所以我的问题基本上是,有没有办法让我告诉我的StaticInterface我的WantedObject实际上扩展了我的UsefulObject,即使它不是直接的?我真的不希望不必将我的WantedObject重写为UsefulObject的纯扩展,因为OlderObject包含许多有用的代码,我正在写一个数据库,我正在使用的序列需要了解当前状态OlderObject.我在写这篇文章时意识到我可以让WantedInterface直接扩展OlderObject的接口,但我想知道是否有办法避免这种情况.

编辑:好的,在一个非常奇怪的事情扭曲,我能够通过将WantedObject的扩展名更改为UsefulObject来解决问题,然后将其更改为原样.也许问题只是一些临时的IDE事情?我正在使用eclipse,它有偶然的问题吗?

java generics class-hierarchy

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

如何在python中将数字作为二进制字符串返回,并设置一定数量的位

可能是个愚蠢的问题,但是在python中有一种简单的方法可以自动用零填充数字到固定长度吗?我无法在python文档中找到这个,但我可能看起来不够努力?ei我希望bin(4)返回00100而不是100.是否有一种简单的方法可以确保输出为6位而不是3位?

python binary

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

Casperjs点击方法

我对casperjs和javascript很新,但我在其他领域有相当丰富的编码经验.目前我正在尝试运行的代码只是访问一个网站并点击一个链接,这应该是直截了当的,但我遇到了麻烦.

var casper = require('casper').create();
var x = require('casper').selectXPath;

casper.start('http://www.guru.com/emp/search.aspx?keyword=#&&page=1&sort=Earnings');

casper.then(function() {
    this.test.assertExists({
        type: 'xpath',
        path: '//*[@class="paddingLeft5 txt11px txt666"]/a[text()="Next"]'
    }, "Got Here");
});

casper.then(function() {
    var firstUrl = this.getCurrentUrl()
});

casper.thenClick(x('//*[@class="paddingLeft5 txt11px txt666"]/a[text()="Next"]'), function() {
    console.log("Woop!");
});

casper.waitFor(function check() {
    return this.evaluate(function() {
        return this.getCurrentUrl() != firstUrl;
    });
}, function then() {
    console.log(this.getCurrentUrl());
});


casper.run();
Run Code Online (Sandbox Code Playgroud)

目前这个时间超过5000毫秒而没有包装在waitFor中它只是打印两次相同的URL.

javascript web-scraping casperjs

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

如何查看在spyder IDE中运行的程序的进度?

我想查看程序在Spyder中运行时的进度.可能吗?截至目前,除非我在底部写一个指示程序完成执行的打印语句,否则我似乎不知道它什么时候结束

python spyder

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

无法将len(x)转换为可用的int进行字符串切片?

我正在尝试编写一个函数,它接受一个字符串并正常打印,然后反过来,如下所示:

    string = "hello"
    mirror(string)
    'helloolleh'
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的代码:

    def mirror(x) :
        sentence = " "
        length = len(x)
        lengthstring = str(len(x))
        lengthint = int(lengthstring)
        sentence = x[lengthint, 0]
        print x + sentence
Run Code Online (Sandbox Code Playgroud)

但它一直说len(x)是一个元组而不是一个int,它不能成为字符串切片的一部分?

python

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