如果我想join在我的 Ubuntu上使用,我需要首先按字典顺序对两个文件进行排序(根据join --help),然后才加入它们:
tail -n +2 meta/201508_1 | sort -k 1b,1 > meta.txt
tail -n +2 keywords/copy | sort -k 1b,1 > keywords.txt
join meta.txt keywords.txt -1 1 -2 1 -t $'\t'
Run Code Online (Sandbox Code Playgroud)
(我还使用从他们两个中删除标题tail)
但不是按字典顺序对文件进行排序,我想按数字对它们进行排序:两个文件中的第一列都是一个 ID。
tail -n +2 meta/201508_1 | sort -k1 -n > meta.txt
tail -n +2 keywords/copy.txt | sort -k1 -n > keywords.txt
Run Code Online (Sandbox Code Playgroud)
然后加入。但是对于join这些文件看起来未排序:
join: meta.txt:10: is not sorted: 1023 301000 en
join: keywords.txt:2: is not sorted: 10 keyword1
Run Code Online (Sandbox Code Playgroud)
如果我添加 …
这是关于Flink Scala API"没有足够的论据"的后续问题.
我希望能够传递Flink的DataSet并使用它做一些事情,但数据集的参数是通用的.
这是我现在遇到的问题:
import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.api.scala._
import scala.reflect.ClassTag
object TestFlink {
def main(args: Array[String]) {
val env = ExecutionEnvironment.getExecutionEnvironment
val text = env.fromElements(
"Who's there?",
"I think I hear them. Stand, ho! Who's there?")
val split = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } }
id(split).print()
env.execute()
}
def id[K: ClassTag](ds: DataSet[K]): DataSet[K] = ds.map(r => r)
}
Run Code Online (Sandbox Code Playgroud)
我有这个错误ds.map(r => r):
Multiple markers at this line
- not enough arguments for …Run Code Online (Sandbox Code Playgroud) 我试图增强显示流的使用的Flink示例.我的目标是使用窗口功能(请参阅window函数调用).我假设下面的代码输出流的最后3个数字的总和.(由于nc -lk 9999在ubuntu上打开了流)实际上,输出总结了输入的所有数字.切换到时间窗口会产生相同的结果,即不会产生窗口.
那是一个错误吗?(使用的版本:github上的最新版本)
object SocketTextStreamWordCount {
def main(args: Array[String]) {
val hostName = args(0)
val port = args(1).toInt
val env = StreamExecutionEnvironment.getExecutionEnvironment
// Create streams for names and ages by mapping the inputs to the corresponding objects
val text = env.socketTextStream(hostName, port)
val currentMap = text.flatMap { (x:String) => x.toLowerCase.split("\\W+") }
.filter { (x:String) => x.nonEmpty }
.window(Count.of(3)).every(Time.of(1, TimeUnit.SECONDS))
// .window(Time.of(5, TimeUnit.SECONDS)).every(Time.of(1, TimeUnit.SECONDS))
.map { (x:String) => ("not used; just to have a tuple for …Run Code Online (Sandbox Code Playgroud) 我正在建立书籍推荐系统.数据集中的列是:
userid, location, age, Book Title, Author, Year of publication, Rating
Run Code Online (Sandbox Code Playgroud)
为此,我将属性视为
location, age, year of publication
Run Code Online (Sandbox Code Playgroud)
输出应该是书名和作者,所以我应该如何创建类
如何对书籍和作者的标题进行分类或分类?这样做的最佳算法是什么?请提供纸质链接
先感谢您
我正在使用MaxEntTagger通过使用以下代码进行pos标记和句子分割:
MaxentTagger tagger = new MaxentTagger("models/left3words-wsj-0-18.tagger");
@SuppressWarnings("unchecked")
List<Sentence<? extends HasWord>> sentences = MaxentTagger.tokenizeText(new BufferedReader(new StringReader(out2)));
for (Sentence<? extends HasWord> sentence : sentences) {
content.append(sentence + "\n");
Sentence<TaggedWord> tSentence = MaxentTagger.tagSentence(sentence);
out.append(tSentence.toString(false) + "\n");
}
Run Code Online (Sandbox Code Playgroud)
问题是它会抱怨文本中有无法识别的字符.标记的输出将省略那些不可识别的字符.因此,例如,原始文本是:令Σ是一组有限的函数符号,即签名.
其中Σ是big5代码.但程序将显示以下警告消息:无法识别:Σ(十进制中的第一个字符:931)
标记输出为:令/ VB为/ VB a/DT有限/ JJ设置/ NN/IN函数/ NN符号/ NNS,/,/ DT签名/ NN ./.
我得到的分裂句子是:设为一组有限的函数符号,即签名.
我的问题是如何保留这些不可言说的角色?
我已经尝试修改模式的道具文件,但没有运气:
tagger training invoked at Sun Sep 21 23:03:26 PDT 2008 with arguments:
model = left3words-wsj-0-18.tagger
arch = left3words,naacl2003unknowns,wordshapes(3)
trainFile = /u/nlp/data/pos-tagger/train-wsj-0-18 ...
encoding = Big5
initFromTrees = false
有什么建议吗?
感谢Manning教授的帮助.但是在使用解析器树时遇到了同样的问题. …