我遇到了从solr索引中去除标点符号的问题当标点符号紧跟在一个单词后面时,这个单词没有正确编入索引.
例如:如果我们索引"hello,John",则不会通过关键字"hello"找到资产,而如果我们在单词"hello"之后删除逗号则不会出现问题.
是否有任何FilterFactory假设剥离标点符号?有任何想法吗?
谢谢,波格丹.
我想删除字符串中的所有前导和尾随标点符号.我怎样才能做到这一点?
基本上,我想在单词之间保留标点符号,我需要删除所有前导和尾随标点符号.
.,@,_,&,/,-允许如果由字母或数字环绕\' 如果前面有字母或数字,则允许我试过了
Pattern p = Pattern.compile("(^\\p{Punct})|(\\p{Punct}$)");
Matcher m = p.matcher(term);
boolean a = m.find();
if(a)
term=term.replaceAll("(^\\p{Punct})", "");
Run Code Online (Sandbox Code Playgroud)
但它不起作用!!
我想在scala中执行以下操作:
val l = List("An apple", "a pear", "a grapefruit", "some bread")
... some one-line simple function ...
"An apple, a pear, a grapefruit and some bread"
Run Code Online (Sandbox Code Playgroud)
用这种方式编写它的最短方法是什么?
到目前为止,我最好的尝试是:
def makeEnumeration(l: List[String]): String = {
var s = ""
var size = l.length
for(i <- 0 until size) {
if(i > 0) {
if(i != size - 1) { s += ", "
} else s += " and "
}
s += l(i)
}
s
}
Run Code Online (Sandbox Code Playgroud)
但这很麻烦.任何的想法?
我有来自twitter的推文语料库.我清理这个语料库(removeWords,tolower,删除URls),最后还想删除标点符号.
这是我的代码:
tweetCorpus <- tm_map(tweetCorpus, removePunctuation, preserve_intra_word_dashes = TRUE)
Run Code Online (Sandbox Code Playgroud)
现在的问题是,通过这样做,我也松开了#标签.有没有办法用tm_map删除标点符号但保留标签?
我想删除标点符号并将RDD中的字母变成小写?以下是我的数据集
l=sc.parallelize(["How are you","Hello\ then% you"\
,"I think he's fine+ COMING"])
Run Code Online (Sandbox Code Playgroud)
我尝试了以下功能,但收到错误消息
punc='!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
def lower_clean_str(x):
lowercased_str = x.lower()
clean_str = lowercased_str.translate(punc)
return clean_str
one_RDD = l.flatMap(lambda x: lower_clean_str(x).split())
one_RDD.collect()
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误。可能是什么问题?我怎样才能解决这个问题?谢谢。
我有一个问题:
Ex 我有一句话
s = "AAA? BBB. CCC!"
Run Code Online (Sandbox Code Playgroud)
所以,我这样做:
import string
table = str.maketrans('', '', string.punctuation)
s = [w.translate(table) for w in s]
Run Code Online (Sandbox Code Playgroud)
没关系。我的新句子将是:
s = "AAA BBB CCC"
Run Code Online (Sandbox Code Playgroud)
但是,如果我输入的句子如下:
s = "AAA? BBB. CCC! DDD.EEE"
Run Code Online (Sandbox Code Playgroud)
删除标点符号后,我将使用与下面相同的方法
s = "AAA BBB CCC DDDEEE"
Run Code Online (Sandbox Code Playgroud)
但需要:
s = "AAA BBB CCC DDD EEE"
Run Code Online (Sandbox Code Playgroud)
有什么想法/方法可以解决这个问题吗?
为什么下面的use行是合法的 Perl 语法?(改编自父级POD ;在 Cygwin 上的 Perl 5.26.2 x64 上进行测试。)
package MyHash;
use strict;
use Tie::Hash;
use parent -norequire, "Tie::StdHash";
# ^^^^^^^^^^ A bareword with nothing to protect it!
Run Code Online (Sandbox Code Playgroud)
在 下-MO=Deparse,该use行变为
use parent ('-norequire', 'Tie::StdHash');
Run Code Online (Sandbox Code Playgroud)
但我无法从use文档中看出 引用的来源-norequire。
如果use strict不是强制的话,我会理解的。裸字norequire将变成 string "norequire",一元减号将将该字符串变成"-bareword",并且生成的字符串将进入use导入列表。例如:
package MyHash;
use Tie::Hash;
use parent -norequire, "Tie::StdHash";
Run Code Online (Sandbox Code Playgroud)同样,如果有一个粗逗号,我也会理解。 -foo => bar变成"-foo", …
例如,在这句话中,"评论声称?",句子中的问号和最后一个单词用空格分隔.
当法语文本写在一列中时,你经常会得到这样的东西:
Elle zigzague倒入empiétersurdes impostures
?杰奎琳门卫的机会.
换行发生在句子的最后一个单词和问号之间,这是不可取的.
Elle zigzague倒入empiétersurdes impostures
?杰奎琳门卫的机会.
有没有办法在纯CSS中解决这个问题?或者我们是否必须手动处理文本并将标点符号和单词包装在不间断的范围内?
这个正则表达式的目标是删除标点字符:
var myTxt = "Welcome, Visitor: The Royal Kingdom Of Báenou";
myTxt = myTxt.replace(/[^a-zA-Z0-9 ]+/g, '').replace('/ {2,}/',' ');
alert(myTxt);
Run Code Online (Sandbox Code Playgroud)
所以上面的文字应该变成这样:
Welcome Visitor The Royal Kingdom Of Báenou
Run Code Online (Sandbox Code Playgroud)
但相反,它错误地á放入in Báenou产生这个:
Welcome Visitor The Royal Kingdom Of Benou
Run Code Online (Sandbox Code Playgroud)
我可以对正则表达式做出的最简单的改变是什么让它按预期工作?
学习python目前还有一点问题.我试图从另一个子程序中取一条线并将其转换为单独的单词,除了少数几个之外,它们已经被删除了标点符号.该程序的输出应该是它显示的单词和行号.应该是这样的 - >字:[1]
输入文件:
please. let! this3 work.
I: hope. it works
and don't shut up
Run Code Online (Sandbox Code Playgroud)
码:
def createWordList(line):
wordList2 =[]
wordList1 = line.split()
cleanWord = ""
for word in wordList1:
if word != " ":
for char in word:
if char in '!,.?":;0123456789':
char = ""
cleanWord += char
print(cleanWord," cleaned")
wordList2.append(cleanWord)
return wordList2
Run Code Online (Sandbox Code Playgroud)
输出:
anddon't:[3]
anddon'tshut:[3]
anddon'tshutup:[3]
ihope:[2]
ihopeit:[2]
ihopeitworks:[2]
pleaselet:[1]
pleaseletthis3:[1]
pleaseletthis3work:[1]
Run Code Online (Sandbox Code Playgroud)
我不确定这是由什么引起的,但我学会了Ada并在短时间内转换到python.