Java Stanford NLP: Một phần của nhãn Speech?


172

Stanford NLP, demo'd ở đây , đưa ra một kết quả như thế này:

Colorless/JJ green/JJ ideas/NNS sleep/VBP furiously/RB ./.

Phần của các bài phát biểu có ý nghĩa gì? Tôi không thể tìm thấy một danh sách chính thức. Đây có phải là hệ thống riêng của Stanford hay họ đang sử dụng các thẻ phổ quát? ( JJChẳng hạn là gì?)

Ngoài ra, khi tôi lặp đi lặp lại qua các câu, tìm kiếm danh từ chẳng hạn, cuối cùng tôi sẽ làm một cái gì đó như kiểm tra xem nếu thẻ .contains('N'). Điều này cảm thấy khá yếu. Có cách nào tốt hơn để lập trình tìm kiếm một phần nhất định của bài phát biểu không?


Đây có thể là một nitlog, nhưng bạn nên sử dụng .starts_with('N')chứ không phải contains, vì 'IN' và 'VBN' cũng chứa 'N'. Và đó có lẽ là cách tốt nhất để tìm những từ mà tagger nghĩ là danh từ.
Joseph

Câu trả lời:


276

Dự án Penn Treebank . Nhìn vào phần gắn thẻ Part-of-speech ps.

JJ là tính từ. NNS là danh từ, số nhiều. VBP là động từ thì hiện tại. RB là trạng từ.

Đó là tiếng Anh. Đối với người Trung Quốc, đó là Ngân hàng cây Trung Quốc. Và đối với người Đức, đó là kho dữ liệu NEGRA.

  1. Phối hợp CC
  2. Số Hồng y CD
  3. Xác định DT
  4. Hiện có EX
  5. FW từ nước ngoài
  6. IN giới từ hoặc kết hợp cấp dưới
  7. Tính từ JJ
  8. Tính từ JJR, so sánh
  9. Tính từ JJS, so sánh nhất
  10. Danh sách mục LS
  11. Phương thức MD
  12. Danh từ NN, số ít hoặc khối lượng
  13. Danh từ NNS, số nhiều
  14. NNP Danh từ riêng, số ít
  15. NNPS Danh từ riêng, số nhiều
  16. Dự đoán PDT
  17. POS kết thúc sở hữu
  18. PRP Đại từ nhân xưng
  19. PRP $ Đại từ sở hữu
  20. Trạng từ RB
  21. Trạng từ RBR, so sánh
  22. Trạng từ RBS, bậc nhất
  23. Hạt RP
  24. Biểu tượng SYM
  25. ĐẾN
  26. Thán từ UH
  27. Động từ VB, dạng cơ sở
  28. Động từ VBD, thì quá khứ
  29. VBG Động từ, gerund hoặc hiện tại phân từ
  30. Động từ VBN, quá khứ phân từ
  31. Động từ VBP, hiện tại số ít người thứ 3
  32. Động từ VBZ, hiện tại số ít người thứ 3
  33. WDT Whdeterminer
  34. WP Whpronoun
  35. WP $ Sở hữu whpronoun
  36. WRB Whadverb

Đề nghị chỉnh sửa của tôi để khắc phục thiếu sót trong câu trả lời này đã bị từ chối. Vì vậy, xin vui lòng xem câu trả lời được đăng của tôi dưới đây có chứa một số thông tin bị thiếu trong câu trả lời này.
Jules

3
LS thứ 10 chính xác là gì?
Devavrata

3
"Đến" phải đặc biệt. có thẻ riêng
lúc 22 giờ 48 phút

4
Một tài liệu tham khảo thực sự tuyệt vời cho vấn đề này là Danh sách và Giải thích về các phần của các bài phát biểu của Erwin R. Komen . Cũng quan tâm có thể Komen của nghiên cứu bằng tiếng Anh và trang web của Komen của, erwinkomen.ruhosting.nl
CoolHandLouis

1
Các thẻ được sử dụng trong Stanford POS Tagger và Penn Tree bank có giống nhau không?
gokul_uf

113
Explanation of each tag from the documentation :

CC: conjunction, coordinating
    & 'n and both but either et for less minus neither nor or plus so
    therefore times v. versus vs. whether yet
CD: numeral, cardinal
    mid-1890 nine-thirty forty-two one-tenth ten million 0.5 one forty-
    seven 1987 twenty '79 zero two 78-degrees eighty-four IX '60s .025
    fifteen 271,124 dozen quintillion DM2,000 ...
DT: determiner
    all an another any both del each either every half la many much nary
    neither no some such that the them these this those
EX: existential there
    there
FW: foreign word
    gemeinschaft hund ich jeux habeas Haementeria Herr K'ang-si vous
    lutihaw alai je jour objets salutaris fille quibusdam pas trop Monte
    terram fiche oui corporis ...
IN: preposition or conjunction, subordinating
    astride among uppon whether out inside pro despite on by throughout
    below within for towards near behind atop around if like until below
    next into if beside ...
JJ: adjective or numeral, ordinal
    third ill-mannered pre-war regrettable oiled calamitous first separable
    ectoplasmic battery-powered participatory fourth still-to-be-named
    multilingual multi-disciplinary ...
JJR: adjective, comparative
    bleaker braver breezier briefer brighter brisker broader bumper busier
    calmer cheaper choosier cleaner clearer closer colder commoner costlier
    cozier creamier crunchier cuter ...
JJS: adjective, superlative
    calmest cheapest choicest classiest cleanest clearest closest commonest
    corniest costliest crassest creepiest crudest cutest darkest deadliest
    dearest deepest densest dinkiest ...
LS: list item marker
    A A. B B. C C. D E F First G H I J K One SP-44001 SP-44002 SP-44005
    SP-44007 Second Third Three Two * a b c d first five four one six three
    two
MD: modal auxiliary
    can cannot could couldn't dare may might must need ought shall should
    shouldn't will would
NN: noun, common, singular or mass
    common-carrier cabbage knuckle-duster Casino afghan shed thermostat
    investment slide humour falloff slick wind hyena override subhumanity
    machinist ...
NNS: noun, common, plural
    undergraduates scotches bric-a-brac products bodyguards facets coasts
    divestitures storehouses designs clubs fragrances averages
    subjectivists apprehensions muses factory-jobs ...
NNP: noun, proper, singular
    Motown Venneboerger Czestochwa Ranzer Conchita Trumplane Christos
    Oceanside Escobar Kreisler Sawyer Cougar Yvette Ervin ODI Darryl CTCA
    Shannon A.K.C. Meltex Liverpool ...
NNPS: noun, proper, plural
    Americans Americas Amharas Amityvilles Amusements Anarcho-Syndicalists
    Andalusians Andes Andruses Angels Animals Anthony Antilles Antiques
    Apache Apaches Apocrypha ...
PDT: pre-determiner
    all both half many quite such sure this
POS: genitive marker
    ' 's
PRP: pronoun, personal
    hers herself him himself hisself it itself me myself one oneself ours
    ourselves ownself self she thee theirs them themselves they thou thy us
PRP$: pronoun, possessive
    her his mine my our ours their thy your
RB: adverb
    occasionally unabatingly maddeningly adventurously professedly
    stirringly prominently technologically magisterially predominately
    swiftly fiscally pitilessly ...
RBR: adverb, comparative
    further gloomier grander graver greater grimmer harder harsher
    healthier heavier higher however larger later leaner lengthier less-
    perfectly lesser lonelier longer louder lower more ...
RBS: adverb, superlative
    best biggest bluntest earliest farthest first furthest hardest
    heartiest highest largest least less most nearest second tightest worst
RP: particle
    aboard about across along apart around aside at away back before behind
    by crop down ever fast for forth from go high i.e. in into just later
    low more off on open out over per pie raising start teeth that through
    under unto up up-pp upon whole with you
SYM: symbol
    % & ' '' ''. ) ). * + ,. < = > @ A[fj] U.S U.S.S.R * ** ***
TO: "to" as preposition or infinitive marker
    to
UH: interjection
    Goodbye Goody Gosh Wow Jeepers Jee-sus Hubba Hey Kee-reist Oops amen
    huh howdy uh dammit whammo shucks heck anyways whodunnit honey golly
    man baby diddle hush sonuvabitch ...
VB: verb, base form
    ask assemble assess assign assume atone attention avoid bake balkanize
    bank begin behold believe bend benefit bevel beware bless boil bomb
    boost brace break bring broil brush build ...
VBD: verb, past tense
    dipped pleaded swiped regummed soaked tidied convened halted registered
    cushioned exacted snubbed strode aimed adopted belied figgered
    speculated wore appreciated contemplated ...
VBG: verb, present participle or gerund
    telegraphing stirring focusing angering judging stalling lactating
    hankerin' alleging veering capping approaching traveling besieging
    encrypting interrupting erasing wincing ...
VBN: verb, past participle
    multihulled dilapidated aerosolized chaired languished panelized used
    experimented flourished imitated reunifed factored condensed sheared
    unsettled primed dubbed desired ...
VBP: verb, present tense, not 3rd person singular
    predominate wrap resort sue twist spill cure lengthen brush terminate
    appear tend stray glisten obtain comprise detest tease attract
    emphasize mold postpone sever return wag ...
VBZ: verb, present tense, 3rd person singular
    bases reconstructs marks mixes displeases seals carps weaves snatches
    slumps stretches authorizes smolders pictures emerges stockpiles
    seduces fizzes uses bolsters slaps speaks pleads ...
WDT: WH-determiner
    that what whatever which whichever
WP: WH-pronoun
    that what whatever whatsoever which who whom whosoever
WP$: WH-pronoun, possessive
    whose
WRB: Wh-adverb
    how however whence whenever where whereby whereever wherein whereof why

2
bạn có thể vui lòng trích dẫn nguồn?
David Portabella

những gì về dấu câu? ví dụ: mã thông báo ',' nhận PoS ','. Có một danh sách bao gồm các PoS?
David Portabella

Điều gì về PoS "-LRB-" cho mã thông báo '('?
David Portabella

34

Câu trả lời được chấp nhận ở trên thiếu thông tin sau:

Ngoài ra còn có 9 thẻ chấm câu được xác định (không được liệt kê trong một số tài liệu tham khảo, xem tại đây ). Đó là:

  1. #
  2. $
  3. '' (Được sử dụng cho tất cả các hình thức trích dẫn)
  4. ((được sử dụng cho tất cả các hình thức mở ngoặc)
  5. ) (được sử dụng cho tất cả các hình thức đóng ngoặc)
  6. ,
  7. . (được sử dụng cho tất cả các dấu câu kết thúc câu)
  8. : (được sử dụng cho dấu hai chấm, dấu chấm phẩy và dấu chấm lửng)
  9. `` (được sử dụng cho tất cả các hình thức trích dẫn mở đầu)

17

Dưới đây là danh sách đầy đủ hơn các thẻ cho Penn Treebank (được đăng ở đây vì mục đích hoàn chỉnh):

http://www.surdeanu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html

Nó cũng bao gồm các thẻ cho cấp độ mệnh đề và cụm từ.

Cấp khoản

- S
- SBAR
- SBARQ
- SINV
- SQ

Cấp độ cụm từ

- ADJP
- ADVP
- CONJP
- FRAG
- INTJ
- LST
- NAC
- NP
- NX
- PP
- PRN
- PRT
- QP
- RRC
- UCP
- VP
- WHADJP
- WHAVP
- WHNP
- WHPP
- X

(mô tả trong liên kết)


2
Bạn biết gì? Đây là danh sách thực sự mà mọi người cần! Không chỉ các thẻ POS của
Tree Tree

Bạn có thể thêm các mô tả bên cạnh các chữ viết tắt?
Petrus Theron

12

Chỉ trong trường hợp bạn muốn mã hóa nó ...

/**
 * Represents the English parts-of-speech, encoded using the
 * de facto <a href="http://www.cis.upenn.edu/~treebank/">Penn Treebank
 * Project</a> standard.
 * 
 * @see <a href="ftp://ftp.cis.upenn.edu/pub/treebank/doc/tagguide.ps.gz">Penn Treebank Specification</a>
 */
public enum PartOfSpeech {
  ADJECTIVE( "JJ" ),
  ADJECTIVE_COMPARATIVE( ADJECTIVE + "R" ),
  ADJECTIVE_SUPERLATIVE( ADJECTIVE + "S" ),

  /* This category includes most words that end in -ly as well as degree
   * words like quite, too and very, posthead modi ers like enough and
   * indeed (as in good enough, very well indeed), and negative markers like
   * not, n't and never.
   */
  ADVERB( "RB" ),

  /* Adverbs with the comparative ending -er but without a strictly comparative
   * meaning, like <i>later</i> in <i>We can always come by later</i>, should
   * simply be tagged as RB.
   */
  ADVERB_COMPARATIVE( ADVERB + "R" ),
  ADVERB_SUPERLATIVE( ADVERB + "S" ),

  /* This category includes how, where, why, etc.
   */
  ADVERB_WH( "W" + ADVERB ),

  /* This category includes and, but, nor, or, yet (as in Y et it's cheap,
   * cheap yet good), as well as the mathematical operators plus, minus, less,
   * times (in the sense of "multiplied by") and over (in the sense of "divided
   * by"), when they are spelled out. <i>For</i> in the sense of "because" is
   * a coordinating conjunction (CC) rather than a subordinating conjunction.
   */
  CONJUNCTION_COORDINATING( "CC" ),
  CONJUNCTION_SUBORDINATING( "IN" ),
  CARDINAL_NUMBER( "CD" ),
  DETERMINER( "DT" ),

  /* This category includes which, as well as that when it is used as a
   * relative pronoun.
   */
  DETERMINER_WH( "W" + DETERMINER ),
  EXISTENTIAL_THERE( "EX" ),
  FOREIGN_WORD( "FW" ),

  LIST_ITEM_MARKER( "LS" ),

  NOUN( "NN" ),
  NOUN_PLURAL( NOUN + "S" ),
  NOUN_PROPER_SINGULAR( NOUN + "P" ),
  NOUN_PROPER_PLURAL( NOUN + "PS" ),

  PREDETERMINER( "PDT" ),
  POSSESSIVE_ENDING( "POS" ),

  PRONOUN_PERSONAL( "PRP" ),
  PRONOUN_POSSESSIVE( "PRP$" ),

  /* This category includes the wh-word whose.
   */
  PRONOUN_POSSESSIVE_WH( "WP$" ),

  /* This category includes what, who and whom.
   */
  PRONOUN_WH( "WP" ),

  PARTICLE( "RP" ),

  /* This tag should be used for mathematical, scientific and technical symbols
   * or expressions that aren't English words. It should not used for any and
   * all technical expressions. For instance, the names of chemicals, units of
   * measurements (including abbreviations thereof) and the like should be
   * tagged as nouns.
   */
  SYMBOL( "SYM" ),
  TO( "TO" ),

  /* This category includes my (as in M y, what a gorgeous day), oh, please,
   * see (as in See, it's like this), uh, well and yes, among others.
   */
  INTERJECTION( "UH" ),

  VERB( "VB" ),
  VERB_PAST_TENSE( VERB + "D" ),
  VERB_PARTICIPLE_PRESENT( VERB + "G" ),
  VERB_PARTICIPLE_PAST( VERB + "N" ),
  VERB_SINGULAR_PRESENT_NONTHIRD_PERSON( VERB + "P" ),
  VERB_SINGULAR_PRESENT_THIRD_PERSON( VERB + "Z" ),

  /* This category includes all verbs that don't take an -s ending in the
   * third person singular present: can, could, (dare), may, might, must,
   * ought, shall, should, will, would.
   */
  VERB_MODAL( "MD" ),

  /* Stanford.
   */
  SENTENCE_TERMINATOR( "." );

  private final String tag;

  private PartOfSpeech( String tag ) {
    this.tag = tag;
  }

  /**
   * Returns the encoding for this part-of-speech.
   * 
   * @return A string representing a Penn Treebank encoding for an English
   * part-of-speech.
   */
  public String toString() {
    return getTag();
  }

  protected String getTag() {
    return this.tag;
  }

  public static PartOfSpeech get( String value ) {
    for( PartOfSpeech v : values() ) {
      if( value.equals( v.getTag() ) ) {
        return v;
      }
    }

    throw new IllegalArgumentException( "Unknown part of speech: '" + value + "'." );
  }
}

7

Tôi đang cung cấp toàn bộ danh sách ở đây và cũng đưa ra liên kết tham khảo

1.  CC   Coordinating conjunction
2.  CD   Cardinal number
3.  DT   Determiner
4.  EX   Existential there
5.  FW   Foreign word
6.  IN   Preposition or subordinating conjunction
7.  JJ   Adjective
8.  JJR  Adjective, comparative
9.  JJS  Adjective, superlative
10. LS   List item marker
11. MD   Modal
12. NN   Noun, singular or mass
13. NNS  Noun, plural
14. NNP  Proper noun, singular
15. NNPS Proper noun, plural
16. PDT  Predeterminer
17. POS  Possessive ending
18. PRP  Personal pronoun
19. PRP$ Possessive pronoun
20. RB   Adverb
21. RBR  Adverb, comparative
22. RBS  Adverb, superlative
23. RP   Particle
24. SYM  Symbol
25. TO   to
26. UH   Interjection
27. VB   Verb, base form
28. VBD  Verb, past tense
29. VBG  Verb, gerund or present participle
30. VBN  Verb, past participle
31. VBP  Verb, non-3rd person singular present
32. VBZ  Verb, 3rd person singular present
33. WDT  Wh-determiner
34. WP   Wh-pronoun
35. WP$  Possessive wh-pronoun
36. WRB  Wh-adverb

Bạn có thể tìm hiểu toàn bộ danh sách các phần của các bài phát biểu tại đây .


4

Về câu hỏi thứ hai của bạn về việc tìm từ / chunk cụ thể của POS (ví dụ: Danh từ), đây là mã mẫu bạn có thể theo dõi.

public static void main(String[] args) {
    Properties properties = new Properties();
    properties.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(properties);

    String input = "Colorless green ideas sleep furiously.";
    Annotation annotation = pipeline.process(input);
    List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class);
    List<String> output = new ArrayList<>();
    String regex = "([{pos:/NN|NNS|NNP/}])"; //Noun
    for (CoreMap sentence : sentences) {
        List<CoreLabel> tokens = sentence.get(CoreAnnotations.TokensAnnotation.class);
        TokenSequencePattern pattern = TokenSequencePattern.compile(regex);
        TokenSequenceMatcher matcher = pattern.getMatcher(tokens);
        while (matcher.find()) {
            output.add(matcher.group());
        }
    }
    System.out.println("Input: "+input);
    System.out.println("Output: "+output);
}

Đầu ra là:

Input: Colorless green ideas sleep furiously.
Output: [ideas]

2

Chúng dường như là thẻ Brown Corpus .


14
Không, chúng là các thẻ POS của English English, một cách đơn giản hóa bộ thẻ Brown Corpus.
Christopher Manning

Bạn có chắc không? Ví dụ được trích dẫn ở trên bao gồm thẻ "." được định nghĩa trong Brown Corpus, nhưng không được xác định bởi danh sách các thẻ Penn Treebank ở trên, do đó, có vẻ khá chắc chắn rằng ít nhất câu trả lời không đơn giản như chúng chỉ là các thẻ Penn Treebank.
Jules

Sau khi thực hiện nghiên cứu bổ sung, có vẻ như chúng thẻ Penn Treebank, nhưng tài liệu được trích dẫn ở trên về các thẻ đó không đầy đủ: Thẻ Penn Treebank cũng bao gồm 9 thẻ dấu chấm câu đã bị bỏ qua khỏi danh sách trong câu trả lời được chấp nhận. Xem câu trả lời bổ sung của tôi để biết thêm chi tiết.
Jules

2

Stanford CoreNLP Tags cho các ngôn ngữ khác: Pháp, Tây Ban Nha, Đức ...

Tôi thấy bạn sử dụng trình phân tích cú pháp cho ngôn ngữ tiếng Anh, đó là mô hình mặc định. Bạn có thể sử dụng trình phân tích cú pháp cho các ngôn ngữ khác (tiếng Pháp, tiếng Tây Ban Nha, tiếng Đức ...) và, lưu ý, cả mã thông báo và một phần của trình gắn thẻ lời nói đều khác nhau đối với mỗi ngôn ngữ. Nếu bạn muốn làm điều đó, bạn phải tải xuống mô hình cụ thể cho ngôn ngữ (ví dụ sử dụng trình tạo như Maven) và sau đó đặt mô hình bạn muốn sử dụng. Ở đây bạn có thêm thông tin về điều đó.

Ở đây bạn có danh sách các thẻ cho các ngôn ngữ khác nhau:

  1. Thẻ POS CoreNLP của Stanford cho tiếng Tây Ban Nha
  2. Stanford CoreNLP POS Tagger cho người Đức sử dụng Bộ thẻ Stuttgart-Tübingen (STTS)
  3. Công cụ gắn thẻ POS CoreNLP cho người Pháp sử dụng các thẻ sau:

THẺ CHO PHÁP

Một phần của Thẻ bài phát biểu cho tiếng Pháp

A     (adjective)
Adv   (adverb)
CC    (coordinating conjunction)
Cl    (weak clitic pronoun)
CS    (subordinating conjunction)
D     (determiner)
ET    (foreign word)
I     (interjection)
NC    (common noun)
NP    (proper noun)
P     (preposition)
PREF  (prefix)
PRO   (strong pronoun)
V     (verb)
PONCT (punctuation mark)

Phrasal Category Tags cho tiếng Pháp:

AP     (adjectival phrases)
AdP    (adverbial phrases)
COORD  (coordinated phrases)
NP     (noun phrases)
PP     (prepositional phrases)
VN     (verbal nucleus)
VPinf  (infinitive clauses)
VPpart (nonfinite clauses)
SENT   (sentences)
Sint, Srel, Ssub (finite clauses)

Hàm cú pháp cho tiếng Pháp:

SUJ    (subject)
OBJ    (direct object)
ATS    (predicative complement of a subject)
ATO    (predicative complement of a direct object)
MOD    (modifier or adjunct)
A-OBJ  (indirect complement introduced by à)
DE-OBJ (indirect complement introduced by de)
P-OBJ  (indirect complement introduced by another preposition)

@AMArostegui: Cảm ơn bạn đã gợi ý. Vui lòng chia sẻ một liên kết trong đó nó được đề cập rõ ràng rằng các phụ thuộc phổ quát được sử dụng cho tiếng Tây Ban Nha. Liên kết này dành cho UD nhưng không có gợi ý rằng chúng thực sự được sử dụng cho tiếng Tây Ban Nha trong Stanfoird Core NLP và tài liệu chính thức của Stanford cũng không đề cập đến nó.
Catalina Chircu

0

Tôi nghĩ rất nhanh, chỉ trong một cuốn sổ tay cấp thấp, nó sẽ chạy như thế này:

import spacy
import time

start = time.time()

with open('d:/dictionary/e-store.txt') as f:
    input = f.read()

word = 0
result = []

nlp = spacy.load("en_core_web_sm")
doc = nlp(input)

for token in doc:
    if token.pos_ == "NOUN":
        result.append(token.text)
    word += 1

elapsed = time.time() - start

print("From", word, "words, there is", len(result), "NOUN found in", elapsed, "seconds")

Đầu ra trong một số thử nghiệm:

From 3547 words, there is 913 NOUN found in 7.768507719039917 seconds
From 3547 words, there is 913 NOUN found in 7.408619403839111 seconds
From 3547 words, there is 913 NOUN found in 7.431427955627441 seconds

Vì vậy, tôi nghĩ rằng bạn không cần phải lo lắng về việc lặp cho mỗi lần kiểm tra thẻ POS :)

Tôi đã cải thiện nhiều hơn khi vô hiệu hóa đường ống nhất định:

nlp = spacy.load("en_core_web_sm", disable = 'ner')

Vì vậy, kết quả nhanh hơn:

From 3547 words, there is 913 NOUN found in 6.212834596633911 seconds
From 3547 words, there is 913 NOUN found in 6.257707595825195 seconds
From 3547 words, there is 913 NOUN found in 6.371225833892822 seconds
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.