我有一个产生nltk块的语法标签,
sent_text = nltk.sent_tokenize(text) # this gives us a list of sentences
# now loop over each sentence and tokenize it separately
for sentence in sent_text:
tokenized_text = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(tokenized_text)
for word, tag in tagged:
print(tag)
这给了我以下输出,
DT
JJ
NN
NN
VBD
IN
DT
JJ
NN
但是,我希望输出像
一样单行 DT JJ NN NN VBD IN DT JJ NN
我该怎么做?
答案 0 :(得分:1)
如果您不想只打印,而是将结果存储在字符串中,则可以使用str.join()
和一个list comprehension:
tags = [tag
for sentence in sent_text
for _, tag in nltk.pos_tag(nltk.word_tokenize(sentence))]
result = " ".join(tags)
print(result)
请注意,_
是一次性变量的通用变量名称。
答案 1 :(得分:1)
这样做
foreach($all_venue_listings as $key => $v) {
...
$all_venue_listings[$key] = ...
这应留下空间而不是下一行。
答案 2 :(得分:1)
我不认为你最终要打印整个字符串并继续使用typedef struct union util;
typedef struct graph Graph;
typedef struct vertex_struct Vertex;
typedef struct arc_struct Arc;
typedef struct graph{
Vertex * vertices;
} Graph;
typedef struct vertex_struct {
struct arc_struct * arcs;
int name;
struct util u, v, w, x, y, z;
};
typedef struct arc_struct {
struct vertex_struct * tip;
struct arc_struct * next;
struct util a, b;
};
struct union {
struct vertex_struct * V;
struct arc_struct * A;
struct graph_struct * G;
char * S;
int I;
};
所以将它分配给新变量将在下面解释。
在顶部初始化变量tag_str并在print语句之后使用它。
print(tag, end = ' ')
答案 3 :(得分:1)
如果您没有使用Python 3,则可以直接写入sys.stdout
,这样您就可以跳过换行符。
答案 4 :(得分:1)
如果您使用的是python 2.x.
使用print(tag,)
,,
将输出放在同一行。所以你可以使用print (tag + ' ',)
如果您使用的是python 3
使用print(tag, end="")
或print(tag, end=" ")
取决于您是否需要空格。