小编Sab*_*zir的帖子

无意义的空间名词

我正在使用 Spacy 从句子中提取名词。这些句子在语法上很差,也可能包含一些拼写错误。

这是我正在使用的代码:

代码

import spacy
import re

nlp = spacy.load("en_core_web_sm")

sentence= "HANDBRAKE - slow and fast (SFX)"
string= sentence.lower()
cleanString = re.sub('\W+',' ', string )
cleanString=cleanString.replace("_", " ")

doc= nlp(cleanString)

for token in doc:
    if token.pos_=="NOUN":
        print (token.text)
 
Run Code Online (Sandbox Code Playgroud)

输出:

sfx
Run Code Online (Sandbox Code Playgroud)

同样对于句子“fast foward2”,我得到 Spacy 名词为

foward2
Run Code Online (Sandbox Code Playgroud)

这表明这些名词有一些无意义的词,如:sfx、foward2、ms、64x、bit、pwm、r、brailledisplayfastmovement等。

我只想保留包含合理的单词名词的短语,如 broom、ticker、pool、highway 等。

我尝试过 Wordnet 过滤 wordnet 和 spacy 之间的常用名词,但它有点严格,并且还过滤了一些合理的名词。例如,它过滤了摩托车、whoosh、手推车、金属、手提箱、拉链等名词

因此,我正在寻找一种解决方案,在该解决方案中,我可以从我获得的 spacy 名词列表中过滤掉最合理的名词。

python text nltk wordnet spacy

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

具有欧氏距离的A*启发式计算

我正在用Java实现A*算法,以找到两点(不同城市的机场)之间的最短路径.为此目的,我使用无向和加权图,其中每条边代表两个节点(机场)之间的距离.启发式计算通过欧几里德距离完成.这是我的启发式函数的代码

double Sum = 0;

Sum = Math.pow((destination.getG()-currentNode.getG()),2.0);

return Math.sqrt(Sum);
Run Code Online (Sandbox Code Playgroud)

我用G值i计算启发式,即节点之间的边缘.这是对的吗?请帮助.启发式函数获取源节点和目标节点.我希望它清楚.

java heuristics a-star path-finding

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

标签 统计

a-star ×1

heuristics ×1

java ×1

nltk ×1

path-finding ×1

python ×1

spacy ×1

text ×1

wordnet ×1