POLICY_NOUN_PHRASES
Provides the ability to extract the noun phrases along with part-of-speech information for each word in each noun phrase from a given document.
For example, consider the following sentence:
“The mayor of Chicago is giving a brief press conference.”
The noun phrases for this input are “mayor of Chicago” and “brief press conference.” The subgroups in the input text are not returned. For instance, in the above example, subgroups such as “mayor, Chicago, brief press, press conference, press, conference” are not returned.
All AUTO_LEXER languages are supported for POLICY_NOUN_PHRASES and POLICY_PART_OF_SPEECHPOLICY_NOUN_PHRASES.
Syntax
ctx_doc.policy_noun_phrases (
policy_name in varchar2,
document in varchar2 | CLOB,
restab in out nocopy noun_phrase_tab,
language in varchar2 default NULL,
format in varchar2 default NULL,
charset in varchar2 default NULL
);
policy_name
Specify the policy name created with CTX_DDL.CREATE_POLICY.
document
A body of text for which the languages are to be extracted. The text is assumed to be plain text with UTF-8 character encoding.
restab
Specify the name of the CLOB locator.
language
Specify the language. See the list of supported languages in this section. If this parameter is null, the language will be automatically detected. There is a cost associated with language detection.
format
The format of the input text.
charset
The character set of the input text.
Abbreviations for Use with POLICY_NOUN_PHRASES and POLICY_PART_OF_SPEECH
This is a list of abbreviations that you can use in queries for POLICY_NOUN_PHRASES and POLICY_PART_OF_SPEECH. The examples use these abbreviations.
Table 1 Part of Speech Abbreviations
| Abbreviation | Part of Speech |
|---|---|
| N | noun |
| propN | nounProper |
| V | verb |
| Adj | adjective |
| Adv | adverb |
| Prep | preposition |
| Part | particle |
| Punct | punct |
| Pro | pronoun |
| Wh | interrog |
| Det | determiner |
| Conj | conjunction |
| Card | numCardinal |
| Ord | numOrdinal |
| Suf | suffix |
| Pre | prefix |
| Acr | nounAcronym |
| Poss | poss |
| Unk | unknown |
Example for POLICY__NOUN_PHRASES
The example in this section uses the abbreviations shown in the preceding table.
set serverout on
create or replace function toString(b boolean) return varchar2 is
begin
if (b) then
return 'TRUE';
end if;
return 'FALSE';
end;
/
declare
the_nps ctx_doc.noun_phrase_tab;
begin
ctx_ddl.create_preference('rvlex', 'AUTO_LEXER');
ctx_ddl.set_attribute('rvlex','mixed_case','YES');
ctx_ddl.set_attribute('rvlex','timeout',0);
ctx_ddl.create_policy(policy_name => 'rv_policy_21',lexer => 'rvlex');
ctx_doc.policy_noun_phrases('rv_policy_21','The mayor of Chicago is giving a
brief press conference',the_nps);
dbms_output.put_line(the_nps.count);
for i in 1..the_nps.count loop
if (the_nps(i).is_phrase_start) then
if (i>1) then
dbms_output.put(']');
dbms_output.new_line;
end if;
dbms_output.put('Phrase{term,POS,is_in_lex,offset,len,is_phrase_
start}:[');
else
dbms_output.put(',');
end if;
dbms_output.put('{' || the_nps(i).term || ',' || the_nps(i).pos_tag || ','
|| toString(the_nps(i).is_in_lexicon) || ',' || the_nps(i).offset
|| ',' || the_nps(i).length || ',' || toString(the_nps(i).is_phrase_start)
|| '}');
end loop;
dbms_output.put(']');
dbms_output.new_line;
end;
/
Output for this example:
Phrase{term,POS,is_in_lex,offset,len,is_phrase_start}:
[{The,Det,TRUE,1,3,TRUE},{mayor,N,TRUE,5,5,FALSE},
{of,Prep,TRUE,11,2,FALSE},{Chicago,propN,TRUE,14,7,FALSE}
Phrase{term,POS,is_in_lex,offset,len,is_phrase_start}:
[{a,Det,TRUE,32,1,TRUE},{brief,N,TRUE,34,5,FALSE},
{press,N,TRUE,40,5,FALSE},{conference,N,TRUE,46,10,FALSE}]
Related Topics