Я хочу поместить документы в корпус документов с открытым текстом, используя пакет tm в R. Когда я применяю функцию SnowballStemmer ко всем документам корпуса, только последнее слово каждого документа ставится в тупик.
library(tm)
library(Snowball)
library(RWeka)
library(rJava)
path <- c("C:/path/to/diretory")
corp <- Corpus(DirSource(path),
readerControl = list(reader = readPlain, language = "en_US",
load = TRUE))
tm_map(corp,SnowballStemmer) #stemDocument has the same problem
Я думаю, что это связано с тем, пути документы считываются в корпус. Чтобы проиллюстрировать это на некоторых простых примерах:
> vec<-c("running runner runs","happyness happies")
> stemDocument(vec)
[1] "running runner run" "happyness happi"
> vec2<-c("running","runner","runs","happyness","happies")
> stemDocument(vec2)
[1] "run" "runner" "run" "happy" "happi" <-
> corp<-Corpus(VectorSource(vec))
> corp<-tm_map(corp, stemDocument)
> inspect(corp)
A corpus with 2 text documents
The metadata consists of 2 tag-value pairs and a data frame
Available tags are:
create_date creator
Available variables in the data frame are:
MetaID
[[1]]
run runner run
[[2]]
happy happi
> corp2<-Corpus(DirSource(path),readerControl=list(reader=readPlain,language="en_US" , load=T))
> corp2<-tm_map(corp2, stemDocument)
> inspect(corp2)
A corpus with 2 text documents
The metadata consists of 2 tag-value pairs and a data frame
Available tags are:
create_date creator
Available variables in the data frame are:
MetaID
$`1.txt`
running runner runs
$`2.txt`
happyness happies
-121--1481368- Я заполняю TreeView узлами на основе XML-документа. Тем не менее, кажется, что когда я иду, чтобы поместить значение атрибута в текстовое поле, он теряет его новые строки/каретки returns/tabs.
Я начинаю с добавления группы узлов с «именами задач». Каждая задача имеет один или несколько запросов в XML-документе. Например: < Задачи > < Имя задачи = «aTaskName» > < Запросы > < Добавить запрос = «длинная последовательность с вкладками и новыми строками и такими »/> Запросы > Задача >...
void PopulateQueries(XDocument doc, TreeView tree)
{
foreach (TreeNode node in tree.Nodes)
{
var taskName = node.Text;
var queriesNode = node.Nodes.Add("Queries");
var queries = doc.Descendants("Tasks")
.Descendants("Task")
.Where(d => d.Attribute("name").Value == taskName)
.Descendants("Queries")
.Descendants("add")
.ToList();
for (int i = 0; i < queries.Count;i++)
{
queriesNode.Nodes.Add(queries[i].Attribute("Query").Value, "query" + i);
}
}
}
Позже в узле щелкните событие:
void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
textBoxRaw.Text = string.Empty;
if (e.Node.Text.StartsWith("query"))
{
textBoxRaw.Text = e.Node.Name;
}
}
Значение атрибута Query содержит длинный SQL-запрос с новыми строками, вкладками и т.д. Но ничего из этого, кажется, не появляется в (многострочном) текстовом поле, несмотря на все мои крики в Visual Studio. Что я делаю не так? Кроме того, var doc = XDocument.Load (имя файла, LoadOptions.PreserureWhitespace);
также не работает.