我想绘制文本中词性的频率。我有每个POS标签的构面图,每个图中的x轴是句子索引,y轴是该POS标签的频率。
这些图似乎是从点到x轴绘制的,而不是从点到点绘制的。我该如何更改?
library(udpipe)
library(dplyr)
library(stringr)
library(ggplot2)
library(gutenbergr)
ud_model <- udpipe_download_model(language = "english")
ud_model <- udpipe_load_model(ud_model$file_model)
txt<-gutenberg_download(152)
txt<-paste(unlist(txt), collapse =" ")
# Annotate (POS tag) the text
x <- udpipe_annotate(ud_model, txt)
x <- as.data.frame(x)
#Need to get frequency per sentence of each term
heatBySentence<-x%>%select(sentence_id,upos)%>% group_by(sentence_id,upos) %>%summarise(Number=n())
ggplot(data=heatBySentence[19:nrow(heatBySentence),], aes(x=sentence_id, y=Number,group=upos)) +
geom_point()+
geom_line()+
geom_smooth()+
facet_wrap(~ upos, scales = "free")
答案 0 :(得分:0)
您的问题主要是规模化,我检查了您的数据,您的数据集中有很多问题,这意味着您的许多观察结果都是这样。如果我们看到您的数据的一部分,该问题将更加清晰
func retrieveMessages() {
let testUserOrAd = SwipingView.myAdvertiserVar.advertiser
print("testing result: \(testUserOrAd) your are a User")
//if advertiser
if testUserOrAd == true{
if let testId = self.toId{
let MessageDB = Database.database().reference().child("Users").child(toId!).child("Messages").child(uid!)
MessageDB.observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String,String>
let text = snapshotValue["MessageBody"]!
let fromId = snapshotValue["FromId"]
let message = Message()
message.messageBody = text
message.fromId = fromId
self.messageArray.append(message)
self.configureTableView()
self.messageTableView.reloadData()
}
}
}else{
//if user
let MessageDB = Database.database().reference().child("Users").child(uid!).child("Messages").child(toId!)
MessageDB.observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as? [String: AnyObject]
let text = snapshotValue!["MessageBody"] as? String
let fromId = snapshotValue!["FromId"] as? String
let message = Message()
message.messageBody = text
message.fromId = fromId
self.messageArray.append(message)
self.configureTableView()
self.messageTableView.reloadData()
}
}
}
如果我做的图形与您在此处所做的相同,但仅直到第99句,则结果如下:
heatBySentence<- x %>% select(sentence_id,upos) %>% group_by(sentence_id,upos) %>%summarise(Number=n())
firstHundred <- heatBySentence %>% filter(sentence_id < 100)
如您所见,所有点都相互连接,但是由于您的数据集中有很多点,并且您有4000多个句子,因此它们看起来挤在一起,好像每个点都从头开始起源。一开始您的图没有任何问题,只有很多图和塞满了x轴的