考虑以下文件
var1 var2 variable3
1 2 3
11 22 33
Run Code Online (Sandbox Code Playgroud)
我想将数字加载到矩阵中,并将列标题转换为相当于以下内容的变量:
variable_names = char('var1', 'var2', 'variable3');
Run Code Online (Sandbox Code Playgroud)
我不介意将名称和数字分成两个文件,但是准备matlab代码文件并评估它们不是一种选择.
请注意,可以有任意数量的变量(列)
我有一个名为'plainlinks'的文件,如下所示:
13080. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94092-2012.gz
13081. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94094-2012.gz
13082. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94096-2012.gz
13083. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94097-2012.gz
13084. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94098-2012.gz
13085. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94644-2012.gz
13086. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94645-2012.gz
13087. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94995-2012.gz
13088. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-94996-2012.gz
13089. ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/999999-96404-2012.gz
Run Code Online (Sandbox Code Playgroud)
我需要生成如下所示的输出:
999999-94092
999999-94094
999999-94096
999999-94097
999999-94098
999999-94644
999999-94645
999999-94995
999999-94996
999999-96404
Run Code Online (Sandbox Code Playgroud) 我有这个脚本在文本中进行单词搜索.搜索结果非常好,结果按预期工作.我想要实现的是提取n接近匹配的单词.例如:
世界是一个小地方,我们应该尽力照顾它.
假设我正在寻找place,我需要提取右边的3个单词和左边的3个单词.在这种情况下,他们将是:
left -> [is, a, small]
right -> [we, should, try]
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方法是什么?
谢谢!
我想要一个脚本,称为lines.sh可以管道数据以选择一系列行.
例如,如果我有以下文件:
的test.txt
a
b
c
d
Run Code Online (Sandbox Code Playgroud)
然后我可以运行:
cat test.txt | lines 2,4
Run Code Online (Sandbox Code Playgroud)
它会输出
b
d
Run Code Online (Sandbox Code Playgroud)
我正在使用zsh,但如果可能的话,我更喜欢使用bash解决方案.
我正在开展一个项目,我希望从文本中提取情感.因为我正在使用conceptnet5(语义网络),所以我不能简单地在包含否定词的句子中添加单词,因为这些单词根本不会出现在conceptnet5的API中.
这是一个例子:
这部电影并不那么好.
因此,我认为我可以使用wordnet的引理功能来替换含有否定词的句子中的形容词,例如(不,......).
在前面的示例中,算法将检测wasn't并将替换它was not.此外,它会检测到否定词not,并good用它的反义词替换bad.这句话如下:
电影很糟糕.
虽然我发现这不是最优雅的方式,并且它可能在很多情况下产生了错误的结果,但我仍然希望以这种方式处理否定,因为我坦率地不知道任何更好的方法.
考虑到我的问题:
不幸的是,我没有找到任何允许我替换所有出现的附加否定词(wasn't=> was not)的库.我的意思是我可以通过用正则表达式替换事件来手动完成,但后来我会被英语语言困住.
因此,我想问一下你们中是否有人知道可以帮助我的图书馆,功能或更好的方法.目前我正在使用python nltk,但它似乎并不包含这样的功能,但我可能错了.
提前致谢 :)
我有一个字符串文件:
string-string-123
string-string-123
string-string-123
string-string-12345
string-string-12345
string-string-12345-123
Run Code Online (Sandbox Code Playgroud)
如何在bash(string-string-123)中检索最常见的行?
这是我关于SO的第一个问题,请告诉我是否可以改进.我正在研究R中的自然语言处理项目,并且正在尝试构建包含测试用例的data.table.在这里,我构建了一个简化的示例:
texts.dt <- data.table(string = c("one",
"two words",
"three words here",
"four useless words here",
"five useless meaningless words here",
"six useless meaningless words here just",
"seven useless meaningless words here just to",
"eigth useless meaningless words here just to fill",
"nine useless meaningless words here just to fill up",
"ten useless meaningless words here just to fill up space"),
word.count = 1:10,
stop.at.word = c(0, 1, 2, 2, 4, 3, 3, 6, 7, 5))
Run Code Online (Sandbox Code Playgroud)
这将返回我们将要处理的data.table:
string word.count stop.at.word
1: …Run Code Online (Sandbox Code Playgroud) 可以在Keras中使用n-gram吗?
例如,句子在X_train数据帧中包含"句子"列.
我以下列方式使用Keras的tokenizer:
tokenizer = Tokenizer(lower=True, split=' ')
tokenizer.fit_on_texts(X_train.sentences)
X_train_tokenized = tokenizer.texts_to_sequences(X_train.sentences)
Run Code Online (Sandbox Code Playgroud)
然后我填写句子:
X_train_sequence = sequence.pad_sequences(X_train_tokenized)
Run Code Online (Sandbox Code Playgroud)
我还使用一个简单的LSTM网络:
model = Sequential()
model.add(Embedding(MAX_FEATURES, 128))
model.add(LSTM(32, dropout=0.2, recurrent_dropout=0.2,
activation='tanh', return_sequences=True))
model.add(LSTM(64, dropout=0.2, recurrent_dropout=0.2, activation='tanh'))
model.add(Dense(number_classes, activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop',
metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
在这种情况下,tokenizer执行.在Keras docs:https://keras.io/preprocessing/text/ 我看到字符处理是可能的,但这不适合我的情况.
我的主要问题:我可以将n-gram用于NLP任务(不仅仅是情感分析,而是任何NLP任务)
澄清一下:我不仅要考虑单词而且要考虑单词组合.我想尝试看看它是否有助于模拟我的任务.
最近,我开始在《学习火花》一书中学习火花。从理论上讲,一切都是清楚的,在实践中,我面对的事实是,我首先需要对文本进行预处理,但是没有关于此主题的实际提示。
我考虑到的第一件事是,现在最好使用数据框而不是RDD,因此我对数据框进行了预处理。
所需的操作:
我的代码是:
from pyspark.sql import SparkSession
from pyspark.sql.functions import udf, col, lower, regexp_replace
from pyspark.ml.feature import Tokenizer, StopWordsRemover
from nltk.stem.snowball import SnowballStemmer
spark = SparkSession.builder \
.config("spark.executor.memory", "3g") \
.config("spark.driver.cores", "4") \
.getOrCreate()
df = spark.read.json('datasets/entitiesFull/full').select('id', 'text')
# Clean text
df_clean = df.select('id', (lower(regexp_replace('text', "[^a-zA-Z\\s]", "")).alias('text')))
# Tokenize text
tokenizer = Tokenizer(inputCol='text', outputCol='words_token')
df_words_token = tokenizer.transform(df_clean).select('id', 'words_token')
# Remove stop words
remover = StopWordsRemover(inputCol='words_token', outputCol='words_clean')
df_words_no_stopw = remover.transform(df_words_token).select('id', 'words_clean')
# Stem text
stemmer …Run Code Online (Sandbox Code Playgroud) python text-processing apache-spark apache-spark-sql pyspark
我正在使用一些基于规则和统计的POS标记器来标记语料库(大约5000个句子)和词性(POS).以下是我的测试语料库的片段,其中每个单词由其各自的POS标签分隔为'/'.
No/RB ,/, it/PRP was/VBD n't/RB Black/NNP Monday/NNP ./.
But/CC while/IN the/DT New/NNP York/NNP Stock/NNP Exchange/NNP did/VBD n't/RB fall/VB apart/RB Friday/NNP as/IN the/DT Dow/NNP Jones/NNP Industrial/NNP Average/NNP plunged/VBD 190.58/CD points/NNS --/: most/JJS of/IN it/PRP in/IN the/DT final/JJ hour/NN --/: it/PRP barely/RB managed/VBD *-2/-NONE- to/TO stay/VB this/DT side/NN of/IN chaos/NN ./.
Some/DT ``/`` circuit/NN breakers/NNS ''/'' installed/VBN */-NONE- after/IN the/DT October/NNP 1987/CD crash/NN failed/VBD their/PRP$ first/JJ test/NN ,/, traders/NNS say/VBP 0/-NONE- *T*-1/-NONE- ,/, *-2/-NONE- unable/JJ *-3/-NONE- to/TO cool/VB the/DT …Run Code Online (Sandbox Code Playgroud)