# レスポンス

このセクションでは、Tisaneが返すレスポンス構造のすべてのコンポーネントとデータ構造について詳しく説明します。

`POST /parse`レスポンスには、提供された設定に基づいて表示または非表示にできるセクションが含まれています。（詳しくは[設定およびカスタマイズガイド](/apis/tisane-api-configuration)をご覧ください。）

ルートレベルの属性は以下のとおりです。

- `text`（文字列） - 最初に入力したテキスト。
- `language`（文字列） - 言語判定が使用された場合の検出された言語コード。
- `reduced_output`（ブール値） - 入力サイズが原因で詳細情報が省略されたかどうかを示す。
- `sentiment`（浮動小数点数） - ドキュメントレベルのセンチメントスコア（-1 から 1）。`document_sentiment`設定が`true`の時にのみ表示される。
- `signal2noise`（浮動小数点数） - テキストが`relevant`設定の概念にどれだけ近いかを示す関連性スコア。この値は、`relevant`設定が存在する場合にのみ表示される。


## 問題のあるコンテンツ

Tisaneは、悪用される可能性のあるインスタンス（問題のあるコンテンツ）についてテキストを自動的に分析し、レスポンスで警告します。

`abuse`セクションでは、モデレーターの介入を必要とする、または法執行機関への引継ぎを要する可能性のあるとして検出されたコンテンツのインスタンスをリストします。

このセクションは、以下の場合に表示されます。

1. 問題のあるコンテンツのインスタンスが見つかっている。
2. `abuse`設定が`true`に設定（または省略）されている。


注：事例の背景はそれぞれ異なります。さまざまなタイプの警告されたコンテンツにどのように対処するかは、インテグレーターおよびコミュニティ管理者の責任となります。

例：出会い系アプリで性的な誘いを制限すること、広く受け入れられるコミュニティで暴言を検閲すること、または外部との接触が許されている場合にそれを制限することは適切ではないかもしれません。

問題のあるコンテンツ（abuse）情報をレスポンスに表示*したくない*場合は、`abuse`設定を必ず明示的に`false`に設定してください。

### コンテンツ属性

各インスタンスには次の属性が含まれます。

- `type`（文字列） - 不適切な内容の種類
- `offset`（符号なし整数） - インスタンスの開始位置。（0から始まる）
- `length`（符号なし整数） - コンテンツの長さ。
- `sentence_index`（符号なし整数） - インスタンスを含むセンテンスのインデックス。（0から始まる）
- `text`（文字列） - インスタンスを含むテキストのフラグメント。`snippets`設定が`true`に設定されている場合のみ表示される。
- `tags`（文字列の配列） - 不適切とされる詳細のタグ。例えば、そのフラグメントがハードドラッグの販売を試みるものとして分類される場合、インスタンスに`hard_drug`タグが含まれる。
- `severity`（文字列） - 不適切度のレベル。`low（低）`、`medium（中）`、`high（高）`、`extreme（最高）`の4段階に分類される。
- `explanation`（文字列） - 分類の根拠（`explain`が有効である場合）。


### サポートされるタイプ

サポートされる問題のタイプは以下の通りです。

- `personal_attack` -  個人を標的にした直接的な侮辱や攻撃。例：ネットいじめのインスタンス。注：アイデア、投稿、一般的な否定的感情に対する批判は、個人的な侮辱とは異なります。参考：[Personal Attack（個人攻撃）](/guides/abuse/personalattack)
- `bigotry` - ヘイトスピーチや偏見に満ちた意見の表明、 保護されたグループを標的にした敵対的な発言。これには人種的中傷だけでなく、グループ全体に向けられた敵対的な発言も含まれます。参考：[Bigotry and Hate Speech（偏見・ヘイトスピーチ）](/guides/abuse/hatespeechandbigotry)
- `profanity` - 文脈や意図にかかわらず、攻撃的な言葉を使用すること。なお、人種差別はこのタイプには含まれません。参考：[Profanity（暴言）](/guides/abuse/profanity)
- `sexual_advances` - 歓迎されるか否かを問わず、性的な好意や満足を求めようとする行為。参考：[Sexual Advances（性的なアプローチ）](/guides/abuse/sexualadvances)
- `criminal_activity` - 違法な物品を販売または取得しようとする行為、犯罪的サービスに従事する行為、脅迫、またはこれらに類似する行為を含むコンテンツ。参考：[Criminal Activity（犯罪行為）](/guides/abuse/criminalactivity)
- `external_contact` - 外部チャネルを通じてコミュニケーションまたは支払いを開始しようとすること。例：電話、メール、メッセージアプリなど。このような行為は、ギグエコノミープラットフォームやeコマースサイトなど、特定のコミュニティにおける規則に抵触する可能性があります。参考：[Attempts to Establish External Contact（外部接触の試み）](/guides/abuse/externalcontact)
- `adult_only` - 未成年者の利用を制限する活動。例：アルコールの摂取。参考：[Adult-Only Content（成人向けコンテンツ）](/guides/abuse/adultonly)
- `mental_issues` - 自殺願望やうつ病の兆候など、精神衛生上の懸念を示す可能性のある内容。参考：[Mental Issues（メンタルヘルスに関する内容）](/guides/abuse/mental)
- `allegation` - 犯罪行為を伴う、または伴わない可能性のある不正行為の申立てまたは告発。参考：[Allegations（申立て・告発）](/guides/abuse/allegation)
- `contentious` - 個人または集団の感情的な反応を扇動または誘発する可能性のある内容。参考：[Contentious Content（論争を招くコンテンツ）](/guides/abuse/contentious)
- `disturbing` - 読者を不安にさせるような描写。参考：[Disturbing Content（不安を引き起こす内容）](/guides/abuse/disturbing)
- `no_meaningful_content` - 明確な意味を持たず、無意味または意味不明な文章。参考：[Meaningless Content（意味のないコンテンツ）](/guides/abuse/nomeaningfulcontent)
- `data_leak` - 機微な個人情報。例：パスワード、ID番号など。参考：[Data Leaks（データ漏洩）](/guides/abuse/dataleak)
- `spam` - スパムコンテンツ。参考：[スパム](/guides/abuse/spam)
- `social_hierarchy` - コミュニティーにおけるヒエラルキーを強引に主張すること。例：他人をコントロールしようとする態度。参考：[Social Hierarchy（ヒエラルキーの主張）](/guides/abuse/socialhierarchy)
- `generic` - 特定のカテゴリーに当てはまらないコンテンツ。未定義。


## センチメント分析

`sentiment_expressions`セクションでは、アスペクトまたはエンティティに対するセンチメントが強調されます。

このセクションは、以下の場合に表示されます。

1. センチメントが表現されるインスタンスが見つかっている。
2. `sentiment`設定が`true`に設定（または省略）されている。


各インスタンスには次の属性が含まれます。

- `offset`（符号なし整数） - インスタンスの開始位置。（0から始まる）
- `length`（符号なし整数） - コンテンツの長さ。
- `sentence_index`（符号なし整数） - インスタンスを含むセンテンスのインデックス。（0から始まる）
- `text`（文字列） - インスタンスを含むテキストのフラグメント（`snippets`設定が`true`に設定されている場合）。
- `polarity`（文字列） - テキストのセンチメント（`positive`、`negative`、`mixed`）を表す。また、センチメントがアプリケーションで事前に定義されている場合は、デフォルト値も使用される。例：レビューが、*どこが気に入ったか_と_どこが気に入らなかったか_の2つがあり、レビュアーが単に_言葉を発せずに（絵文字などで）答えている場合。サービス*。そのような場合、_default_の極性に従い、アプリケーションが文脈に基づいてセンチメントを外部に割り当てることができる。
- `targets`（文字列の配列） - センチメントが言及する特定のアスペクトやエンティティがあれば、これをリストする。例えば、_朝食はおいしかったが、スタッフは愛想がない_という文章では、センチメントのターゲットは`食事`と`スタッフ`になる。固有表現もセンチメントのターゲットになり得る。
- `reasons`（文字列の配列） - センチメントの正当性を示す（ある場合）。たとえば、_朝食はおいしかったが、スタッフは愛想がない_という文章では、`staff`に対する`reasons`は`["unfriendly"]`（愛想がない）であり、`meal`に対する`reasons`は`["tasty"]`（おいしい）になります。
- `explanation`（文字列） - センチメントの根拠（`説明`が有効である場合）。


例：


```json
"sentiment_expressions": [
       {
           "sentence_index": 0,
            "offset": 0,
            "length": 32,
            "polarity": "positive",
            "reasons": ["close"],
            "targets": ["location"]
        },
        {
           "sentence_index": 0,
            "offset": 38,
            "length": 29,
            "polarity": "negative",
            "reasons": ["disrespectful"],
            "targets": ["staff"]
        }
    ]
```

## 固有表現

`entities_summary`セクションは、本文中で検出されたエンティティをリストします。

このセクションは、以下の場合に表示されます。

1. 固有表現が見つかっている。
2. `entities`設定が`true`に設定（または省略）されている。


すべてのエンティティには次の属性が含まれます。

- `name`（文字列） - すべてのメンションで、テキスト内で最も完全な形で検出されたエンティティ名の形式。
- `ref_lemma`（文字列） - 入力言語に関係なく、英語でのエンティティの辞書形式（lemma）（ある場合）。
- `type`（文字列または文字列の配列） - エンティティのタイプを定義する。エンティティによっては複数のタイプを持つものもある。国（または、世界的に認められていなくても、国であることを宣言しているその他の地政学的実体）は、場所であると同時に組織でもあると考えられる。
- `subtype`（文字列） - エンティティタイプ内のより詳細な分類を指定する。
- `mentions`（オブジェクトの配列） - テキストにエンティティが表示されるすべてのインスタンスをリストする。


すべてのメンションには次の属性が含まれます。

- `offset`（符号なし整数） - インスタンスの開始位置。（0から始まる）
- `length`（符号なし整数） - コンテンツの長さ。
- `sentence_index`（符号なし整数） - インスタンスを含むセンテンスのインデックス。（0から始まる）
- `text`（文字列） - インスタンスを含むテキストのフラグメント（`snippets`設定が`true`に設定されている場合）。


例：


```json
"entities_summary": [
       {
           "type": "person",
            "name": "John Smith",
            "ref_lemma": "John Smith",
            "mentions": [
               {
                   "sentence_index": 0,
                    "offset": 0,
                    "length": 10 }
            ]
        }
   ,
        {
           "type": [ "organization", "place" ]
       ,
            "name": "UK",
            "ref_lemma": "U.K.",
            "mentions": [
               {
                   "sentence_index": 0,
                    "offset": 40,
                    "length": 2 }
            ]
        }
    ]
```

### エンティティタイプとサブタイプ

現在サポートされるエンティティは以下の通りです。

- `person`（人物） オプションのサブタイプ：`fictional_character`、`important_person`、`spiritual_being`
- `organization`（組織） 注：国は「組織」と「場所」の両方として扱われる
- `place`（場所）
- `time_range`（時間範囲）
- `date`（日付）
- `time`（時刻）
- `hashtag`（ハッシュタグ）
- `email`（Eメール）
- `amount_of_money`（金額）
- `phone`（電話） - 様々な形式の電話番号（国内または海外）
- `role`（役割） - 社会的役割例：組織における役職
- `software`（ソフトウェア） - よく知られるソフトウェアパッケージ
- `website`（ウェブサイト／URL） オプションのサブタイプ：`tor`（Onionリンク）　注：ウェブサービスにも`software`タイプを割り当てることができる
- `item_of_interest`（調査対象物） - 調査の対象となる可能性のあるあらゆるタイプの人工物。例：武器、ドラッグ、車、高級品。
- `weight`（重量）
- `bank_account`（銀行口座） 現在のところ以下の形式のみがサポートされる：`IBAN`
- `credit_card`（クレジットカード） - 以下のオプションサブタイプを持つクレジットカード番号：`visa`、`mastercard`、`american_express`、`diners_club`、`discovery`、`jcb`、`unionpay`
- `coordinates`（座標） - GPS座標
- `credential`（認証情報） オプションのサブタイプ：`md5`、`sha-1`
- `crypto`（暗号資産） オプションのサブタイプ：`bitcoin`、`ethereum`、`monero`、`monero_payment_id`、`litecoin`、`dash`
- `event`（イベント） - 複数の人が参加する注目すべきイベント。
- `file`（ファイル） Windowsのパス名のみがサポートされる。サブタイプ：`windows`、`facebook`（Facebookからダウンロードした画像用）。
- `flight_code`（フライトコード）
- `identifier`（識別子） 他に分類されない英数字の識別子（ID番号、コードなど）。
- `ip_address`（IPアドレス）、サブタイプ：`v4`、`v6`
- `mac_address`（MACアドレス）
- `numeric`（分類されていない数値エンティティ）
- `username` - ユーザー名またはユーザーのエイリアス。


## トピック

`topics`セクションは、本文中で検出されたトピックをリストします。例：

このセクションは、以下の場合に表示されます。

1. トピックが検出されている。
2. `topics`設定が`true`に設定（または省略）されている。


`topic_stats`の設定が`true`に設定されている場合、配列の各エントリーに以下が含まれます。

- `topic`（文字列） - トピックの名前。
- `coverage`（浮動小数点数） - 文章の総数に対する、トピックが検出された文の割合を表す関連性スコア。


## 長期記憶

`memory`セクションは、同じ会話スレッド内の後続のメッセージの中で`settings`に受け渡せるオプションのコンテキストを提供します。

詳しくは[Context and Long-Term Memory（コンテキストと長期記憶）](/apis/tisane-api-configuration#context-and-long-term-memory)をご覧ください。

## 低レベルデータ：文章、フレーズ、単語

Tisanは、以下のより詳細な言語データも提供できます。

- 文章：元の文章と、スペルミスが検出された場合の修正後の文章。
- 語彙チャンク：文法や文体の特徴を注釈した単語のグループ（チャンク）。
- パースツリーとフレーズ：フレーズとその関係を強調して文章の構造を階層的に表現する。


### 文章

`sentence_list`のセクションは、以下の場合に生成されます。

* `words`または`parses`設定が`true`に設定されている。


リストにあるすべての文章構造は以下を含みます。

- `offset`（符号なし整数） - インスタンスの開始位置。（0から始まる）
- `length`（符号なし整数） - コンテンツの長さ。
- `text`（文字列） - 最初に入力したテキスト。
- `corrected_text`（文字列） - スペルミスや難読化/アルゴスピークが検出され、スペルチェックが有効になっている場合の自動修正後の文章。
- `words`（構造の配列） - `words`設定が`true`に設定されている場合、各語彙チャンクの詳細情報を提供する。注：分かりやすくするために「単語」という用語を使っていますが、語彙チャンクを個々の単語と同一視するのは言語学的に正確ではないことがあります。
- `parse_tree`（オブジェクト） - `parses`設定が`true`に設定されている場合、文章のパースツリーと検出されたフレーズが含まれる。
- `N-best_parses`（構文オブジェクトの配列） - 最適なパースツリーに近い代替のパースツリーをリストする。`parses`設定が`true`で、かつ`deterministic`設定が明示的に`false`に設定されている場合に生成されます。


### 単語

単語セクションは、以下の場合に生成されます。

* `words`設定が`true`に設定されている。


`words`配列のすべての語彙チャンク（分かりやすくするため「単語」と呼びます）構造には、以下のものが含まれます。

- `type`（文字列） - エレメントのカテゴリーを定義する。例：句読点には`punctuation`を、数字には`numeral`を、その他のすべてのテキスト要素には`word`を使用します。
- `text`（文字列） - 最初に入力したテキスト。
- `offset`（符号なし整数） - インスタンスの開始位置。（0から始まる）
- `length`（符号なし整数） - コンテンツの長さ。
- `corrected_text`（文字列） - スペルミスが検出された場合の自動修正後の文章。
- `lettercase`（文字列） - 元の単語のレターケースを`大文字`、`最初だけ大文字`、`混在`で示す。注：テキストがすべて小文字である、または大文字と小文字を区別しない場合、この属性は省略されます。
- `stopword`（ブール値） - 単語がストップワードであるかどうかを特定する。
- `grammar`（文字列の配列または構造） - `単語`に関連する文法的特徴をリストする。`feature_standard`の設定が`native`に定義されている場合、各機能は`index`（数字）と`value`（文字列）を含むオブジェクトとなる。そうでない場合、各機能はプレーンな文字列として示される。


#### 高度な設定

語彙的な単語のみ：

- `role`（文字列） - 単語の意味役割。例：`agent`（動作主）または`patient`（被動者）。注：受動態では、意味役割が構文的役割と逆転します。例：_The car was driven by David_という文章では、_car_は被動者であり、_David_は動作主です。
- `numeric_value`（浮動小数点数） - 単語が数値を表す場合、または数値に関連する場合の数値。
- `family`（整数） - 語彙チャンクの曖昧性が解消された語義に関連するファミリーのID。
- `definition`（文字列） - ファミリーの定義。
  - `fetch_definitions`設定が`true`に設定されている場合に含まれる。
- `lexeme`（整数） - 曖昧性が解消された語義に関連する語彙素エントリーのID。
- `nondictionary_pattern`（整数） - 言語モデルでは見つからなかったが、非辞書的ヒューリスティックスを使用して分類された場合に、単語に一致する非辞書的パターンのID。
- `style`（文字列または構造の配列） - `単語`に関連するスタイルの特徴のリストを生成する。
  - `feature_standard`設定が`native`または`description`に設定されている場合に含まれる。
- `semantics`（文字列または構造の配列） - `単語`に関連するセマンティックの特徴のリストを生成する。
  - `feature_standard`設定が`native`または`description`に設定されている場合に含まれる。
- `segmentation`（構造） - 選択したセグメンテーションに関する情報を提供する。セグメンテーションは単語構造の配列である。
  - 複数のセグメンテーションが可能で、`deterministic`設定が`false`に設定されている場合に含まれる。
- `other_segmentations`（構造の配列） - 曖昧性除去のプロセスで不正確と見なされた別のセグメンテーションをリストする。各エントリーは`segmentation`と同じ構造を持つ。
- `N-best_senses`（構造の配列） - 別の曖昧性除去の仮説を提供する。
  - `deterministic`設定が`false`の場合に含まれる。
  - 各仮説には以下が含まれます。
    - `grammar`、`style`、`semantics`。これらは、上記の対応する属性と同じ構造である。
    - `senses`。仮説の語義をリストします。それぞれには以下が含まれます。
      - `family`：関連するファミリーID。
      - `definition`：`fetch_definitions`が有効になっている場合のファミリーの定義。
      - `ref_lemma`：参照レマ（ある場合）


句読点のみ：

- `id`（整数） - 句読点のID。
- `behavior`（文字列） - 句読点の機能を定義する行動コード。数値：
  - `sentenceTerminator`（文末句点）
  - `genericComma`（一般的なカンマ）
  - `bracketStart`（括弧の開始）
  - `bracketEnd`（括弧の終了）
  - `scopeDelimiter`（範囲を区切る記号）
  - `hyphen`（ハイフン）
  - `quoteStart`（引用符の開始）
  - `quoteEnd`（引用符の終了）
  - `listComma`（ `、`などの東アジアの列挙コンマ ）


N-best意義のない句読点。

### パースツリーとフレーズ

パースツリー（正確にはパースフォレスト）は、互いにリンクされたフレーズの階層的な集合体です。

パースツリーセクションは、以下の場合に生成されます。

* `parses`設定が`true`に設定されている。


パースのトップレベルでは、`phrases`要素の中にルートフレーズの配列があり、それぞれが数値`id`と関連付けられる。

すべてのフレーズは子フレーズを持つことができ、入れ子構造を形成します。

すべてのフレーズには次の属性が含まれます。

- `type`（文字列） - フレーズのタイプを示す標準的なフレーズタグ。例：`S`、`VP`、`NP`、`ADJP`、`ADVP`。
- `family`（整数） - フレーズファミリーのID。
- `offset`（符号なし整数） - インスタンスの開始位置。（0から始まる）
- `length`（符号なし整数） - フレーズの長さ。
- `role`（文字列） - 個々の単語に割り当てられる意味役割と同じように、該当する場合は、フレーズの意味役割。
- `text`（文字列） - フレーズのテキスト表現：フレーズのメンバーは、縦棒文字 (|).子フレーズは括弧（）で囲まれます。例：
  - *driven|by|David* 9（3つのメンバーを持つフラットフレーズ）
  - *(The|car)|was|(driven|by|David)* (子フレーズのある階層構造）。


例：


```json
"parse_tree": {
"id": 4,
"phrases": [
{
       "type": "S",
       "family": 1451,
       "offset": 0,
       "length": 27,
       "text": "(The|car)|was|(driven|by|David)",
       "children": [
               {
                       "type": "NP",
                       "family": 1081,
                       "offset": 0,
                       "length": 7,
                       "text": "The|car",
                       "role": "patient"
               },
               {
                       "type": "VP",
                       "family": 1172,
                       "offset": 12,
                       "length": 15,
                       "text": "driven|by|David",
                       "role": "verb"
               }
       ]
}
```

### コンテキストを考慮したスペル訂正

Tisaneはコンテキストを考慮したスペル訂正をサポートしています。特に言語モデルが単語を認識できない場合に、意図された意味を推測することで、スペルミスや意図的な難読化を識別し、修正します。

修正が行われると、Tisaneは`corrected_text`の属性を付け加えます。

- 単語レベル：個々の単語や語彙チャンクが返される場合。
- 文章レベル：文章テキストが作成される場合。


文章レベルでの`corrected_text`は、以下の場合に表示されます。

* `words`または`parses`設定が`true`に設定されている。


#### 希少用語を除外する

Tisaneは大手辞書と提携しています。`min_generic_frequency`設定を調整することで、難解な用語を除外することができます。

#### スペルチェックの呼び出し

注：スペルチェックは、出力に文章セクションが含まれるか単語セクションが含まれるかに関係なく実行されます。

この動作は以下の設定でコントロールできます。

- スペルチェックを完全にオフにするには、`disable_spellcheck`を`true`に設定します。
- 固有名詞の訂正を避けるには（大文字で始まる単語を使う言語では）、`lowercase_spellcheck_only`を`true`に設定します。これによりスペルチェックを小文字の単語に限定し、大文字の単語や大文字で始まる単語は除外します。