master e3195986ef56 cached
16 files
427.8 KB
139.5k tokens
34 symbols
1 requests
Download .txt
Showing preview only (441K chars total). Download the full file or copy to clipboard to get everything.
Repository: RandolphVI/Hierarchical-Multi-Label-Text-Classification
Branch: master
Commit: e3195986ef56
Files: 16
Total size: 427.8 KB

Directory structure:
gitextract_iyvd7aib/

├── .github/
│   └── FUNDING.yml
├── .gitignore
├── .travis.yml
├── HARNN/
│   ├── test_harnn.py
│   ├── text_harnn.py
│   ├── train_harnn.py
│   └── visualization.py
├── LICENSE
├── README.md
├── Usage.md
├── data/
│   ├── Test_sample.json
│   ├── Train_sample.json
│   └── Validation_sample.json
└── utils/
    ├── checkmate.py
    ├── data_helpers.py
    └── param_parser.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ["https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/blob/master/.github/Wechat.jpeg", "https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/blob/master/.github/Alipay.jpeg"]


================================================
FILE: .gitignore
================================================
### Compiled source ###
*.com
*.class
*.dll
*.exe
*.o
*.so

### Packages ###
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

### Logs and databases ###
*.log
*.sql
*.sqlite

### Mac OS generated files ###
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

### JetBrain config files ###
.idea

### Python ###
# Byte-compiled / optimized / DLL files
*.npy
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover

# Translations
*.mo
*.pot

# Sphinx documentation
docs/_build/

# PyBuilder
target/

### IPythonNotebook ###
# Temporary data
.ipynb_checkpoints/

### Current Project ###
# Data File
*.txt
*.tsv
*.csv
*.json
*.jpg
*.png
*.html
*.pickle
*.kv
*.pdf
!/data
!/data/train_sample.json
!/data/validation_sample.json
!/data/test_sample.json

# Project File
/HMC-LMLP
/HMCN
/SVM

# Model File
*.model
*.pb
runs/
graph/

# Analysis File
Data Analysis.md

# Log File
logs/

# Related Code
temp.py

### Else ###
randolph/
Icon?
*.graffle

================================================
FILE: .travis.yml
================================================
language: python

matrix:
  include:
    - python: 3.6

install:
  - pip install -r requirements.txt
  - pip install coveralls

before_script:
  - export PYTHONPATH=$PWD

script:
  - true # add other tests here
  - coveralls

================================================
FILE: HARNN/test_harnn.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'

import os
import sys
import time
import logging
import numpy as np

sys.path.append('../')
logging.getLogger('tensorflow').disabled = True

import tensorflow as tf
from utils import checkmate as cm
from utils import data_helpers as dh
from utils import param_parser as parser
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, average_precision_score

args = parser.parameter_parser()
MODEL = dh.get_model_name()
logger = dh.logger_fn("tflog", "logs/Test-{0}.log".format(time.asctime()))

CPT_DIR = 'runs/' + MODEL + '/checkpoints/'
BEST_CPT_DIR = 'runs/' + MODEL + '/bestcheckpoints/'
SAVE_DIR = 'output/' + MODEL


def create_input_data(data: dict):
    return zip(data['pad_seqs'], data['section'], data['subsection'], data['group'],
               data['subgroup'], data['onehot_labels'], data['labels'])


def test_harnn():
    """Test HARNN model."""
    # Print parameters used for the model
    dh.tab_printer(args, logger)

    # Load word2vec model
    word2idx, embedding_matrix = dh.load_word2vec_matrix(args.word2vec_file)

    # Load data
    logger.info("Loading data...")
    logger.info("Data processing...")
    test_data = dh.load_data_and_labels(args, args.test_file, word2idx)

    # Load harnn model
    OPTION = dh._option(pattern=1)
    if OPTION == 'B':
        logger.info("Loading best model...")
        checkpoint_file = cm.get_best_checkpoint(BEST_CPT_DIR, select_maximum_value=True)
    else:
        logger.info("Loading latest model...")
        checkpoint_file = tf.train.latest_checkpoint(CPT_DIR)
    logger.info(checkpoint_file)

    graph = tf.Graph()
    with graph.as_default():
        session_conf = tf.ConfigProto(
            allow_soft_placement=args.allow_soft_placement,
            log_device_placement=args.log_device_placement)
        session_conf.gpu_options.allow_growth = args.gpu_options_allow_growth
        sess = tf.Session(config=session_conf)
        with sess.as_default():
            # Load the saved meta graph and restore variables
            saver = tf.train.import_meta_graph("{0}.meta".format(checkpoint_file))
            saver.restore(sess, checkpoint_file)

            # Get the placeholders from the graph by name
            input_x = graph.get_operation_by_name("input_x").outputs[0]
            input_y_first = graph.get_operation_by_name("input_y_first").outputs[0]
            input_y_second = graph.get_operation_by_name("input_y_second").outputs[0]
            input_y_third = graph.get_operation_by_name("input_y_third").outputs[0]
            input_y_fourth = graph.get_operation_by_name("input_y_fourth").outputs[0]
            input_y = graph.get_operation_by_name("input_y").outputs[0]
            dropout_keep_prob = graph.get_operation_by_name("dropout_keep_prob").outputs[0]
            alpha = graph.get_operation_by_name("alpha").outputs[0]
            is_training = graph.get_operation_by_name("is_training").outputs[0]

            # Tensors we want to evaluate
            first_scores = graph.get_operation_by_name("first-output/scores").outputs[0]
            second_scores = graph.get_operation_by_name("second-output/scores").outputs[0]
            third_scores = graph.get_operation_by_name("third-output/scores").outputs[0]
            fourth_scores = graph.get_operation_by_name("fourth-output/scores").outputs[0]
            scores = graph.get_operation_by_name("output/scores").outputs[0]

            # Split the output nodes name by '|' if you have several output nodes
            output_node_names = "first-output/scores|second-output/scores|third-output/scores|fourth-output/scores|output/scores"

            # Save the .pb model file
            output_graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def,
                                                                            output_node_names.split("|"))
            tf.train.write_graph(output_graph_def, "graph", "graph-harnn-{0}.pb".format(MODEL), as_text=False)

            # Generate batches for one epoch
            batches = dh.batch_iter(list(create_input_data(test_data)), args.batch_size, 1, shuffle=False)

            # Collect the predictions here
            true_labels = []
            predicted_labels = []
            predicted_scores = []

            # Collect for calculating metrics
            true_onehot_labels = [[], [], [], [], []]
            predicted_onehot_scores = [[], [], [], [], []]
            predicted_onehot_labels = [[], [], [], [], []]

            for batch_test in batches:
                x, sec, subsec, group, subgroup, y_onehot, y = zip(*batch_test)

                y_batch_test_list = [y_onehot, sec, subsec, group, subgroup]

                feed_dict = {
                    input_x: x,
                    input_y_first: sec,
                    input_y_second: subsec,
                    input_y_third: group,
                    input_y_fourth: subgroup,
                    input_y: y_onehot,
                    dropout_keep_prob: 1.0,
                    alpha: args.alpha,
                    is_training: False
                }
                batch_global_scores, batch_first_scores, batch_second_scores, batch_third_scores, batch_fourth_scores = \
                    sess.run([scores, first_scores, second_scores, third_scores, fourth_scores], feed_dict)

                batch_scores = [batch_global_scores, batch_first_scores, batch_second_scores,
                                batch_third_scores, batch_fourth_scores]

                # Get the predicted labels by threshold
                batch_predicted_labels_ts, batch_predicted_scores_ts = \
                    dh.get_label_threshold(scores=batch_scores[0], threshold=args.threshold)

                # Add results to collection
                for labels in y:
                    true_labels.append(labels)
                for labels in batch_predicted_labels_ts:
                    predicted_labels.append(labels)
                for values in batch_predicted_scores_ts:
                    predicted_scores.append(values)

                for index in range(len(predicted_onehot_scores)):
                    for onehot_labels in y_batch_test_list[index]:
                        true_onehot_labels[index].append(onehot_labels)
                    for onehot_scores in batch_scores[index]:
                        predicted_onehot_scores[index].append(onehot_scores)
                    # Get one-hot prediction by threshold
                    predicted_onehot_labels_ts = \
                        dh.get_onehot_label_threshold(scores=batch_scores[index], threshold=args.threshold)
                    for onehot_labels in predicted_onehot_labels_ts:
                        predicted_onehot_labels[index].append(onehot_labels)

            # Calculate Precision & Recall & F1
            for index in range(len(predicted_onehot_scores)):
                test_pre = precision_score(y_true=np.array(true_onehot_labels[index]),
                                           y_pred=np.array(predicted_onehot_labels[index]), average='micro')
                test_rec = recall_score(y_true=np.array(true_onehot_labels[index]),
                                        y_pred=np.array(predicted_onehot_labels[index]), average='micro')
                test_F1 = f1_score(y_true=np.array(true_onehot_labels[index]),
                                   y_pred=np.array(predicted_onehot_labels[index]), average='micro')
                test_auc = roc_auc_score(y_true=np.array(true_onehot_labels[index]),
                                         y_score=np.array(predicted_onehot_scores[index]), average='micro')
                test_prc = average_precision_score(y_true=np.array(true_onehot_labels[index]),
                                                   y_score=np.array(predicted_onehot_scores[index]), average="micro")
                if index == 0:
                    logger.info("[Global] Predict by threshold: Precision {0:g}, Recall {1:g}, "
                                "F1 {2:g}, AUC {3:g}, AUPRC {4:g}"
                                .format(test_pre, test_rec, test_F1, test_auc, test_prc))
                else:
                    logger.info("[Local] Predict by threshold in Level-{0}: Precision {1:g}, Recall {2:g}, "
                                "F1 {3:g}, AUPRC {4:g}".format(index, test_pre, test_rec, test_F1, test_prc))

            # Save the prediction result
            if not os.path.exists(SAVE_DIR):
                os.makedirs(SAVE_DIR)
            dh.create_prediction_file(output_file=SAVE_DIR + "/predictions.json", data_id=test_data['id'],
                                      true_labels=true_labels, predict_labels=predicted_labels,
                                      predict_scores=predicted_scores)
    logger.info("All Done.")


if __name__ == '__main__':
    test_harnn()


================================================
FILE: HARNN/text_harnn.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'

import tensorflow as tf


class TextHARNN(object):
    """A HARNN for text classification."""

    def __init__(
            self, sequence_length, vocab_size, embedding_type, embedding_size, lstm_hidden_size, attention_unit_size,
            fc_hidden_size, num_classes_list, total_classes, l2_reg_lambda=0.0, pretrained_embedding=None):

        # Placeholders for input, output, dropout_prob and training_tag
        self.input_x = tf.placeholder(tf.int32, [None, sequence_length], name="input_x")
        self.input_y_first = tf.placeholder(tf.float32, [None, num_classes_list[0]], name="input_y_first")
        self.input_y_second = tf.placeholder(tf.float32, [None, num_classes_list[1]], name="input_y_second")
        self.input_y_third = tf.placeholder(tf.float32, [None, num_classes_list[2]], name="input_y_third")
        self.input_y_fourth = tf.placeholder(tf.float32, [None, num_classes_list[3]], name="input_y_fourth")
        self.input_y = tf.placeholder(tf.float32, [None, total_classes], name="input_y")
        self.dropout_keep_prob = tf.placeholder(tf.float32, name="dropout_keep_prob")
        self.alpha = tf.placeholder(tf.float32, name="alpha")
        self.is_training = tf.placeholder(tf.bool, name="is_training")

        self.global_step = tf.Variable(0, trainable=False, name="Global_Step")

        def _attention(input_x, num_classes, name=""):
            """
            Attention Layer.

            Args:
                input_x: [batch_size, sequence_length, lstm_hidden_size * 2]
                num_classes: The number of i th level classes.
                name: Scope name.
            Returns:
                attention_weight: [batch_size, num_classes, sequence_length]
                attention_out: [batch_size, lstm_hidden_size * 2]
            """
            num_units = input_x.get_shape().as_list()[-1]
            with tf.name_scope(name + "attention"):
                W_s1 = tf.Variable(tf.truncated_normal(shape=[attention_unit_size, num_units],
                                                       stddev=0.1, dtype=tf.float32), name="W_s1")
                W_s2 = tf.Variable(tf.truncated_normal(shape=[num_classes, attention_unit_size],
                                                       stddev=0.1, dtype=tf.float32), name="W_s2")
                # attention_matrix: [batch_size, num_classes, sequence_length]
                attention_matrix = tf.map_fn(
                    fn=lambda x: tf.matmul(W_s2, x),
                    elems=tf.tanh(
                        tf.map_fn(
                            fn=lambda x: tf.matmul(W_s1, tf.transpose(x)),
                            elems=input_x,
                            dtype=tf.float32
                        )
                    )
                )
                attention_weight = tf.nn.softmax(attention_matrix, name="attention")
                attention_out = tf.matmul(attention_weight, input_x)
                attention_out = tf.reduce_mean(attention_out, axis=1)
            return attention_weight, attention_out

        def _fc_layer(input_x, name=""):
            """
            Fully Connected Layer.

            Args:
                input_x: [batch_size, *]
                name: Scope name.
            Returns:
                fc_out: [batch_size, fc_hidden_size]
            """
            with tf.name_scope(name + "fc"):
                num_units = input_x.get_shape().as_list()[-1]
                W = tf.Variable(tf.truncated_normal(shape=[num_units, fc_hidden_size],
                                                    stddev=0.1, dtype=tf.float32), name="W")
                b = tf.Variable(tf.constant(value=0.1, shape=[fc_hidden_size], dtype=tf.float32), name="b")
                fc = tf.nn.xw_plus_b(input_x, W, b)
                fc_out = tf.nn.relu(fc)
            return fc_out

        def _local_layer(input_x, input_att_weight, num_classes, name=""):
            """
            Local Layer.

            Args:
                input_x: [batch_size, fc_hidden_size]
                input_att_weight: [batch_size, num_classes, sequence_length]
                num_classes: Number of classes.
                name: Scope name.
            Returns:
                logits: [batch_size, num_classes]
                scores: [batch_size, num_classes]
                visual: [batch_size, sequence_length]
            """
            with tf.name_scope(name + "output"):
                num_units = input_x.get_shape().as_list()[-1]
                W = tf.Variable(tf.truncated_normal(shape=[num_units, num_classes],
                                                    stddev=0.1, dtype=tf.float32), name="W")
                b = tf.Variable(tf.constant(value=0.1, shape=[num_classes], dtype=tf.float32), name="b")
                logits = tf.nn.xw_plus_b(input_x, W, b, name="logits")
                scores = tf.sigmoid(logits, name="scores")

                # shape of visual: [batch_size, sequence_length]
                visual = tf.multiply(input_att_weight, tf.expand_dims(scores, -1))
                visual = tf.nn.softmax(visual)
                visual = tf.reduce_mean(visual, axis=1, name="visual")
            return logits, scores, visual

        def _linear(input_, output_size, initializer=None, scope="SimpleLinear"):
            """
            Linear map: output[k] = sum_i(Matrix[k, i] * args[i] ) + Bias[k].

            Args:
                input_: a tensor or a list of 2D, batch x n, Tensors.
                output_size: int, second dimension of W[i].
                initializer: The initializer.
                scope: VariableScope for the created subgraph; defaults to "SimpleLinear".
            Returns:
                A 2D Tensor with shape [batch x output_size] equal to
                sum_i(args[i] * W[i]), where W[i]s are newly created matrices.
            Raises:
                ValueError: if some of the arguments has unspecified or wrong shape.
            """

            shape = input_.get_shape().as_list()
            if len(shape) != 2:
                raise ValueError("Linear is expecting 2D arguments: {0}".format(str(shape)))
            if not shape[1]:
                raise ValueError("Linear expects shape[1] of arguments: {0}".format(str(shape)))
            input_size = shape[1]

            # Now the computation.
            with tf.variable_scope(scope):
                W = tf.get_variable("W", [input_size, output_size], dtype=input_.dtype)
                b = tf.get_variable("b", [output_size], dtype=input_.dtype, initializer=initializer)

            return tf.nn.xw_plus_b(input_, W, b)

        def _highway_layer(input_, size, num_layers=1, bias=-2.0):
            """
            Highway Network (cf. http://arxiv.org/abs/1505.00387).
            t = sigmoid(Wx + b); h = relu(W'x + b')
            z = t * h + (1 - t) * x
            where t is transform gate, and (1 - t) is carry gate.
            """

            for idx in range(num_layers):
                h = tf.nn.relu(_linear(input_, size, scope=("highway_h_{0}".format(idx))))
                t = tf.sigmoid(_linear(input_, size, initializer=tf.constant_initializer(bias),
                                       scope=("highway_t_{0}".format(idx))))
                output = t * h + (1. - t) * input_
                input_ = output

            return output

        # Embedding Layer
        with tf.device("/cpu:0"), tf.name_scope("embedding"):
            # Use random generated the word vector by default
            # Can also be obtained through our own word vectors trained by our corpus
            if pretrained_embedding is None:
                self.embedding = tf.Variable(tf.random_uniform([vocab_size, embedding_size], minval=-1.0, maxval=1.0,
                                                               dtype=tf.float32), trainable=True, name="embedding")
            else:
                if embedding_type == 0:
                    self.embedding = tf.constant(pretrained_embedding, dtype=tf.float32, name="embedding")
                if embedding_type == 1:
                    self.embedding = tf.Variable(pretrained_embedding, trainable=True,
                                                 dtype=tf.float32, name="embedding")
            self.embedded_sentence = tf.nn.embedding_lookup(self.embedding, self.input_x)
            # Average Vectors
            # [batch_size, embedding_size]
            self.embedded_sentence_average = tf.reduce_mean(self.embedded_sentence, axis=1)

        # Bi-LSTM Layer
        with tf.name_scope("Bi-lstm"):
            lstm_fw_cell = tf.nn.rnn_cell.LSTMCell(lstm_hidden_size)  # forward direction cell
            lstm_bw_cell = tf.nn.rnn_cell.LSTMCell(lstm_hidden_size)  # backward direction cell
            if self.dropout_keep_prob is not None:
                lstm_fw_cell = tf.nn.rnn_cell.DropoutWrapper(lstm_fw_cell, output_keep_prob=self.dropout_keep_prob)
                lstm_bw_cell = tf.nn.rnn_cell.DropoutWrapper(lstm_bw_cell, output_keep_prob=self.dropout_keep_prob)

            # Creates a dynamic bidirectional recurrent neural network
            # shape of `outputs`: tuple -> (outputs_fw, outputs_bw)
            # shape of `outputs_fw`: [batch_size, sequence_length, lstm_hidden_size]

            # shape of `state`: tuple -> (outputs_state_fw, output_state_bw)
            # shape of `outputs_state_fw`: tuple -> (c, h) c: memory cell; h: hidden state
            outputs, state = tf.nn.bidirectional_dynamic_rnn(lstm_fw_cell, lstm_bw_cell,
                                                             self.embedded_sentence, dtype=tf.float32)
            # Concat output
            self.lstm_out = tf.concat(outputs, axis=2)  # [batch_size, sequence_length, lstm_hidden_size * 2]
            self.lstm_out_pool = tf.reduce_mean(self.lstm_out, axis=1)  # [batch_size, lstm_hidden_size * 2]

        # First Level
        self.first_att_weight, self.first_att_out = _attention(self.lstm_out, num_classes_list[0], name="first-")
        self.first_local_input = tf.concat([self.lstm_out_pool, self.first_att_out], axis=1)
        self.first_local_fc_out = _fc_layer(self.first_local_input, name="first-local-")
        self.first_logits, self.first_scores, self.first_visual = _local_layer(
            self.first_local_fc_out, self.first_att_weight, num_classes_list[0], name="first-")

        # Second Level
        self.second_att_input = tf.multiply(self.lstm_out, tf.expand_dims(self.first_visual, -1))
        self.second_att_weight, self.second_att_out = _attention(
            self.second_att_input, num_classes_list[1], name="second-")
        self.second_local_input = tf.concat([self.lstm_out_pool, self.second_att_out], axis=1)
        self.second_local_fc_out = _fc_layer(self.second_local_input, name="second-local-")
        self.second_logits, self.second_scores, self.second_visual = _local_layer(
            self.second_local_fc_out, self.second_att_weight, num_classes_list[1], name="second-")

        # Third Level
        self.third_att_input = tf.multiply(self.lstm_out, tf.expand_dims(self.second_visual, -1))
        self.third_att_weight, self.third_att_out = _attention(
            self.third_att_input, num_classes_list[2], name="third-")
        self.third_local_input = tf.concat([self.lstm_out_pool, self.third_att_out], axis=1)
        self.third_local_fc_out = _fc_layer(self.third_local_input, name="third-local-")
        self.third_logits, self.third_scores, self.third_visual = _local_layer(
            self.third_local_fc_out, self.third_att_weight, num_classes_list[2], name="third-")

        # Fourth Level
        self.fourth_att_input = tf.multiply(self.lstm_out, tf.expand_dims(self.third_visual, -1))
        self.fourth_att_weight, self.fourth_att_out = _attention(
            self.fourth_att_input, num_classes_list[3], name="fourth-")
        self.fourth_local_input = tf.concat([self.lstm_out_pool, self.fourth_att_out], axis=1)
        self.fourth_local_fc_out = _fc_layer(self.fourth_local_input, name="fourth-local-")
        self.fourth_logits, self.fourth_scores, self.fourth_visual = _local_layer(
            self.fourth_local_fc_out, self.fourth_att_weight, num_classes_list[3], name="fourth-")

        # Concat
        # shape of ham_out: [batch_size, fc_hidden_size * 4]
        self.ham_out = tf.concat([self.first_local_fc_out, self.second_local_fc_out,
                                  self.third_local_fc_out, self.fourth_local_fc_out], axis=1)

        # Fully Connected Layer
        self.fc_out = _fc_layer(self.ham_out)

        # Highway Layer
        with tf.name_scope("highway"):
            self.highway = _highway_layer(self.fc_out, self.fc_out.get_shape()[1], num_layers=1, bias=0)

        # Add dropout
        with tf.name_scope("dropout"):
            self.h_drop = tf.nn.dropout(self.highway, self.dropout_keep_prob)

        # Global scores
        with tf.name_scope("global-output"):
            num_units = self.h_drop.get_shape().as_list()[-1]
            W = tf.Variable(tf.truncated_normal(shape=[num_units, total_classes],
                                                stddev=0.1, dtype=tf.float32), name="W")
            b = tf.Variable(tf.constant(value=0.1, shape=[total_classes], dtype=tf.float32), name="b")
            self.global_logits = tf.nn.xw_plus_b(self.h_drop, W, b, name="logits")
            self.global_scores = tf.sigmoid(self.global_logits, name="scores")

        with tf.name_scope("output"):
            self.local_scores = tf.concat([self.first_scores, self.second_scores,
                                           self.third_scores, self.fourth_scores], axis=1)
            self.scores = tf.add(self.alpha * self.global_scores, (1 - self.alpha) * self.local_scores, name="scores")

        # Calculate mean cross-entropy loss, L2 loss
        with tf.name_scope("loss"):
            def cal_loss(labels, logits, name):
                losses = tf.nn.sigmoid_cross_entropy_with_logits(labels=labels, logits=logits)
                losses = tf.reduce_mean(tf.reduce_sum(losses, axis=1), name=name + "losses")
                return losses

            # Local Loss
            losses_1 = cal_loss(labels=self.input_y_first, logits=self.first_logits, name="first_")
            losses_2 = cal_loss(labels=self.input_y_second, logits=self.second_logits, name="second_")
            losses_3 = cal_loss(labels=self.input_y_third, logits=self.third_logits, name="third_")
            losses_4 = cal_loss(labels=self.input_y_fourth, logits=self.fourth_logits, name="fourth_")
            local_losses = tf.add_n([losses_1, losses_2, losses_3, losses_4], name="local_losses")

            # Global Loss
            global_losses = cal_loss(labels=self.input_y, logits=self.global_logits, name="global_")

            # L2 Loss
            l2_losses = tf.add_n([tf.nn.l2_loss(tf.cast(v, tf.float32)) for v in tf.trainable_variables()],
                                 name="l2_losses") * l2_reg_lambda
            self.loss = tf.add_n([local_losses, global_losses, l2_losses], name="loss")

================================================
FILE: HARNN/train_harnn.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'

import os
import sys
import time
import logging

sys.path.append('../')
logging.getLogger('tensorflow').disabled = True

import numpy as np
import tensorflow as tf
from text_harnn import TextHARNN
from utils import checkmate as cm
from utils import data_helpers as dh
from utils import param_parser as parser
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, average_precision_score

args = parser.parameter_parser()
OPTION = dh._option(pattern=0)
logger = dh.logger_fn("tflog", "logs/{0}-{1}.log".format('Train' if OPTION == 'T' else 'Restore', time.asctime()))


def create_input_data(data: dict):
    return zip(data['pad_seqs'], data['section'], data['subsection'],
               data['group'], data['subgroup'], data['onehot_labels'])


def train_harnn():
    """Training HARNN model."""
    # Print parameters used for the model
    dh.tab_printer(args, logger)

    # Load word2vec model
    word2idx, embedding_matrix = dh.load_word2vec_matrix(args.word2vec_file)

    # Load sentences, labels, and training parameters
    logger.info("Loading data...")
    logger.info("Data processing...")
    train_data = dh.load_data_and_labels(args, args.train_file, word2idx)
    val_data = dh.load_data_and_labels(args, args.validation_file, word2idx)

    # Build a graph and harnn object
    with tf.Graph().as_default():
        session_conf = tf.ConfigProto(
            allow_soft_placement=args.allow_soft_placement,
            log_device_placement=args.log_device_placement)
        session_conf.gpu_options.allow_growth = args.gpu_options_allow_growth
        sess = tf.Session(config=session_conf)
        with sess.as_default():
            harnn = TextHARNN(
                sequence_length=args.pad_seq_len,
                vocab_size=len(word2idx),
                embedding_type=args.embedding_type,
                embedding_size=args.embedding_dim,
                lstm_hidden_size=args.lstm_dim,
                attention_unit_size=args.attention_dim,
                fc_hidden_size=args.fc_dim,
                num_classes_list=args.num_classes_list,
                total_classes=args.total_classes,
                l2_reg_lambda=args.l2_lambda,
                pretrained_embedding=embedding_matrix)

            # Define training procedure
            with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
                learning_rate = tf.train.exponential_decay(learning_rate=args.learning_rate,
                                                           global_step=harnn.global_step,
                                                           decay_steps=args.decay_steps,
                                                           decay_rate=args.decay_rate,
                                                           staircase=True)
                optimizer = tf.train.AdamOptimizer(learning_rate)
                grads, vars = zip(*optimizer.compute_gradients(harnn.loss))
                grads, _ = tf.clip_by_global_norm(grads, clip_norm=args.norm_ratio)
                train_op = optimizer.apply_gradients(zip(grads, vars), global_step=harnn.global_step, name="train_op")

            # Keep track of gradient values and sparsity (optional)
            grad_summaries = []
            for g, v in zip(grads, vars):
                if g is not None:
                    grad_hist_summary = tf.summary.histogram("{0}/grad/hist".format(v.name), g)
                    sparsity_summary = tf.summary.scalar("{0}/grad/sparsity".format(v.name), tf.nn.zero_fraction(g))
                    grad_summaries.append(grad_hist_summary)
                    grad_summaries.append(sparsity_summary)
            grad_summaries_merged = tf.summary.merge(grad_summaries)

            # Output directory for models and summaries
            out_dir = dh.get_out_dir(OPTION, logger)
            checkpoint_dir = os.path.abspath(os.path.join(out_dir, "checkpoints"))
            best_checkpoint_dir = os.path.abspath(os.path.join(out_dir, "bestcheckpoints"))

            # Summaries for loss
            loss_summary = tf.summary.scalar("loss", harnn.loss)

            # Train summaries
            train_summary_op = tf.summary.merge([loss_summary, grad_summaries_merged])
            train_summary_dir = os.path.join(out_dir, "summaries", "train")
            train_summary_writer = tf.summary.FileWriter(train_summary_dir, sess.graph)

            # Validation summaries
            validation_summary_op = tf.summary.merge([loss_summary])
            validation_summary_dir = os.path.join(out_dir, "summaries", "validation")
            validation_summary_writer = tf.summary.FileWriter(validation_summary_dir, sess.graph)

            saver = tf.train.Saver(tf.global_variables(), max_to_keep=args.num_checkpoints)
            best_saver = cm.BestCheckpointSaver(save_dir=best_checkpoint_dir, num_to_keep=3, maximize=True)

            if OPTION == 'R':
                # Load harnn model
                logger.info("Loading model...")
                checkpoint_file = tf.train.latest_checkpoint(checkpoint_dir)
                logger.info(checkpoint_file)

                # Load the saved meta graph and restore variables
                saver = tf.train.import_meta_graph("{0}.meta".format(checkpoint_file))
                saver.restore(sess, checkpoint_file)
            if OPTION == 'T':
                if not os.path.exists(checkpoint_dir):
                    os.makedirs(checkpoint_dir)
                sess.run(tf.global_variables_initializer())
                sess.run(tf.local_variables_initializer())

                # Save the embedding visualization
                saver.save(sess, os.path.join(out_dir, "embedding", "embedding.ckpt"))

            current_step = sess.run(harnn.global_step)

            def train_step(batch_data):
                """A single training step."""
                x, sec, subsec, group, subgroup, y_onehot = zip(*batch_data)

                feed_dict = {
                    harnn.input_x: x,
                    harnn.input_y_first: sec,
                    harnn.input_y_second: subsec,
                    harnn.input_y_third: group,
                    harnn.input_y_fourth: subgroup,
                    harnn.input_y: y_onehot,
                    harnn.dropout_keep_prob: args.dropout_rate,
                    harnn.alpha: args.alpha,
                    harnn.is_training: True
                }
                _, step, summaries, loss = sess.run(
                    [train_op, harnn.global_step, train_summary_op, harnn.loss], feed_dict)
                logger.info("step {0}: loss {1:g}".format(step, loss))
                train_summary_writer.add_summary(summaries, step)

            def validation_step(val_loader, writer=None):
                """Evaluates model on a validation set."""
                batches_validation = dh.batch_iter(list(create_input_data(val_loader)), args.batch_size, 1)

                # Predict classes by threshold or topk ('ts': threshold; 'tk': topk)
                eval_counter, eval_loss = 0, 0.0
                eval_pre_tk = [0.0] * args.topK
                eval_rec_tk = [0.0] * args.topK
                eval_F1_tk = [0.0] * args.topK

                true_onehot_labels = []
                predicted_onehot_scores = []
                predicted_onehot_labels_ts = []
                predicted_onehot_labels_tk = [[] for _ in range(args.topK)]

                for batch_validation in batches_validation:
                    x, sec, subsec, group, subgroup, y_onehot = zip(*batch_validation)
                    feed_dict = {
                        harnn.input_x: x,
                        harnn.input_y_first: sec,
                        harnn.input_y_second: subsec,
                        harnn.input_y_third: group,
                        harnn.input_y_fourth: subgroup,
                        harnn.input_y: y_onehot,
                        harnn.dropout_keep_prob: 1.0,
                        harnn.alpha: args.alpha,
                        harnn.is_training: False
                    }
                    step, summaries, scores, cur_loss = sess.run(
                        [harnn.global_step, validation_summary_op, harnn.scores, harnn.loss], feed_dict)

                    # Prepare for calculating metrics
                    for i in y_onehot:
                        true_onehot_labels.append(i)
                    for j in scores:
                        predicted_onehot_scores.append(j)

                    # Predict by threshold
                    batch_predicted_onehot_labels_ts = \
                        dh.get_onehot_label_threshold(scores=scores, threshold=args.threshold)
                    for k in batch_predicted_onehot_labels_ts:
                        predicted_onehot_labels_ts.append(k)

                    # Predict by topK
                    for top_num in range(args.topK):
                        batch_predicted_onehot_labels_tk = dh.get_onehot_label_topk(scores=scores, top_num=top_num+1)
                        for i in batch_predicted_onehot_labels_tk:
                            predicted_onehot_labels_tk[top_num].append(i)

                    eval_loss = eval_loss + cur_loss
                    eval_counter = eval_counter + 1

                    if writer:
                        writer.add_summary(summaries, step)

                eval_loss = float(eval_loss / eval_counter)

                # Calculate Precision & Recall & F1
                eval_pre_ts = precision_score(y_true=np.array(true_onehot_labels),
                                              y_pred=np.array(predicted_onehot_labels_ts), average='micro')
                eval_rec_ts = recall_score(y_true=np.array(true_onehot_labels),
                                           y_pred=np.array(predicted_onehot_labels_ts), average='micro')
                eval_F1_ts = f1_score(y_true=np.array(true_onehot_labels),
                                      y_pred=np.array(predicted_onehot_labels_ts), average='micro')

                for top_num in range(args.topK):
                    eval_pre_tk[top_num] = precision_score(y_true=np.array(true_onehot_labels),
                                                           y_pred=np.array(predicted_onehot_labels_tk[top_num]),
                                                           average='micro')
                    eval_rec_tk[top_num] = recall_score(y_true=np.array(true_onehot_labels),
                                                        y_pred=np.array(predicted_onehot_labels_tk[top_num]),
                                                        average='micro')
                    eval_F1_tk[top_num] = f1_score(y_true=np.array(true_onehot_labels),
                                                   y_pred=np.array(predicted_onehot_labels_tk[top_num]),
                                                   average='micro')

                # Calculate the average AUC
                eval_auc = roc_auc_score(y_true=np.array(true_onehot_labels),
                                         y_score=np.array(predicted_onehot_scores), average='micro')
                # Calculate the average PR
                eval_prc = average_precision_score(y_true=np.array(true_onehot_labels),
                                                   y_score=np.array(predicted_onehot_scores), average='micro')

                return eval_loss, eval_auc, eval_prc, eval_pre_ts, eval_rec_ts, eval_F1_ts, \
                       eval_pre_tk, eval_rec_tk, eval_F1_tk

            # Generate batches
            batches_train = dh.batch_iter(list(create_input_data(train_data)), args.batch_size, args.epochs)
            num_batches_per_epoch = int((len(train_data['pad_seqs']) - 1) / args.batch_size) + 1

            # Training loop. For each batch...
            for batch_train in batches_train:
                train_step(batch_train)
                current_step = tf.train.global_step(sess, harnn.global_step)

                if current_step % args.evaluate_steps == 0:
                    logger.info("\nEvaluation:")
                    eval_loss, eval_auc, eval_prc, \
                    eval_pre_ts, eval_rec_ts, eval_F1_ts, eval_pre_tk, eval_rec_tk, eval_F1_tk = \
                        validation_step(val_data, writer=validation_summary_writer)
                    logger.info("All Validation set: Loss {0:g} | AUC {1:g} | AUPRC {2:g}"
                                .format(eval_loss, eval_auc, eval_prc))
                    # Predict by threshold
                    logger.info("Predict by threshold: Precision {0:g}, Recall {1:g}, F1 {2:g}"
                                .format(eval_pre_ts, eval_rec_ts, eval_F1_ts))
                    # Predict by topK
                    logger.info("Predict by topK:")
                    for top_num in range(args.topK):
                        logger.info("Top{0}: Precision {1:g}, Recall {2:g}, F1 {3:g}"
                                    .format(top_num+1, eval_pre_tk[top_num], eval_rec_tk[top_num], eval_F1_tk[top_num]))
                    best_saver.handle(eval_prc, sess, current_step)
                if current_step % args.checkpoint_steps == 0:
                    checkpoint_prefix = os.path.join(checkpoint_dir, "model")
                    path = saver.save(sess, checkpoint_prefix, global_step=current_step)
                    logger.info("Saved model checkpoint to {0}\n".format(path))
                if current_step % num_batches_per_epoch == 0:
                    current_epoch = current_step // num_batches_per_epoch
                    logger.info("Epoch {0} has finished!".format(current_epoch))

    logger.info("All Done.")


if __name__ == '__main__':
    train_harnn()

================================================
FILE: HARNN/visualization.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'

import sys
import time
import logging

sys.path.append('../')
logging.getLogger('tensorflow').disabled = True

import tensorflow as tf
from utils import checkmate as cm
from utils import data_helpers as dh
from utils import param_parser as parser

args = parser.parameter_parser()
MODEL = dh.get_model_name()
logger = dh.logger_fn("tflog", "logs/Test-{0}.log".format(time.asctime()))

CPT_DIR = 'runs/' + MODEL + '/checkpoints/'
BEST_CPT_DIR = 'runs/' + MODEL + '/bestcheckpoints/'
SAVE_DIR = 'output/' + MODEL


def create_input_data(data: dict):
    return zip(data['pad_seqs'], data['content'], data['section'], data['subsection'], data['group'],
               data['subgroup'], data['onehot_labels'])


def normalization(visual_list, visual_len, epsilon=1e-12):
    min_weight = min(visual_list[:visual_len])
    max_weight = max(visual_list[:visual_len])
    margin = max_weight - min_weight

    result = []
    for i in range(visual_len):
        value = (visual_list[i] - min_weight) / (margin + epsilon)
        result.append(value)
    return result


def create_visual_file(input_x, visual_list: list, seq_len):
    f = open('attention.html', 'w')
    f.write('<html style="margin:0;padding:0;"><body style="margin:0;padding:0;">\n')
    f.write('<div style="margin:25px;">\n')
    for visual in visual_list:
        f.write('<p style="margin:10px;">\n')
        for i in range(seq_len):
            alpha = "{:.2f}".format(visual[i])
            word = input_x[0][i]
            f.write('\t<span style="margin-left:3px;background-color:rgba(255,0,0,{0})">{1}</span>\n'
                    .format(alpha, word))
        f.write('</p>\n')
    f.write('</div>\n')
    f.write('</body></html>')
    f.close()


def visualize():
    """Visualize HARNN model."""

    # Load word2vec model
    word2idx, embedding_matrix = dh.load_word2vec_matrix(args.word2vec_file)

    # Load data
    logger.info("Loading data...")
    logger.info("Data processing...")
    test_data = dh.load_data_and_labels(args, args.test_file, word2idx)

    # Load harnn model
    OPTION = dh._option(pattern=1)
    if OPTION == 'B':
        logger.info("Loading best model...")
        checkpoint_file = cm.get_best_checkpoint(BEST_CPT_DIR, select_maximum_value=True)
    else:
        logger.info("Loading latest model...")
        checkpoint_file = tf.train.latest_checkpoint(CPT_DIR)
    logger.info(checkpoint_file)

    graph = tf.Graph()
    with graph.as_default():
        session_conf = tf.ConfigProto(
            allow_soft_placement=args.allow_soft_placement,
            log_device_placement=args.log_device_placement)
        session_conf.gpu_options.allow_growth = args.gpu_options_allow_growth
        sess = tf.Session(config=session_conf)
        with sess.as_default():
            # Load the saved meta graph and restore variables
            saver = tf.train.import_meta_graph("{0}.meta".format(checkpoint_file))
            saver.restore(sess, checkpoint_file)

            # Get the placeholders from the graph by name
            input_x = graph.get_operation_by_name("input_x").outputs[0]
            input_y_first = graph.get_operation_by_name("input_y_first").outputs[0]
            input_y_second = graph.get_operation_by_name("input_y_second").outputs[0]
            input_y_third = graph.get_operation_by_name("input_y_third").outputs[0]
            input_y_fourth = graph.get_operation_by_name("input_y_fourth").outputs[0]
            input_y = graph.get_operation_by_name("input_y").outputs[0]
            dropout_keep_prob = graph.get_operation_by_name("dropout_keep_prob").outputs[0]
            alpha = graph.get_operation_by_name("alpha").outputs[0]
            is_training = graph.get_operation_by_name("is_training").outputs[0]

            # Tensors we want to evaluate
            first_visual = graph.get_operation_by_name("first-output/visual").outputs[0]
            second_visual = graph.get_operation_by_name("second-output/visual").outputs[0]
            third_visual = graph.get_operation_by_name("third-output/visual").outputs[0]
            fourth_visual = graph.get_operation_by_name("fourth-output/visual").outputs[0]

            # Split the output nodes name by '|' if you have several output nodes
            output_node_names = "first-output/visual|second-output/visual|third-output/visual|fourth-output/visual|output/scores"

            # Save the .pb model file
            output_graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def,
                                                                            output_node_names.split("|"))
            tf.train.write_graph(output_graph_def, "graph", "graph-harnn-{0}.pb".format(MODEL), as_text=False)

            # Generate batches for one epoch
            batches = dh.batch_iter(list(create_input_data(test_data)), args.batch_size, 1, shuffle=False)

            for batch_test in batches:
                x, x_content, sec, subsec, group, subgroup, y_onehot = zip(*batch_test)

                feed_dict = {
                    input_x: x,
                    input_y_first: sec,
                    input_y_second: subsec,
                    input_y_third: group,
                    input_y_fourth: subgroup,
                    input_y: y_onehot,
                    dropout_keep_prob: 1.0,
                    alpha: args.alpha,
                    is_training: False
                }
                batch_first_visual, batch_second_visual, batch_third_visual, batch_fourth_visual = \
                    sess.run([first_visual, second_visual, third_visual, fourth_visual], feed_dict)

                batch_visual = [batch_first_visual, batch_second_visual, batch_third_visual, batch_fourth_visual]

                seq_len = len(x_content[0])
                pad_len = len(batch_first_visual[0])
                length = (pad_len if seq_len >= pad_len else seq_len)
                visual_list = []

                for visual in batch_visual:
                    visual_list.append(normalization(visual[0].tolist(), length))

                create_visual_file(x_content, visual_list, seq_len)
    logger.info("Done.")


if __name__ == '__main__':
    visualize()


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Hierarchical Multi-Label Text Classification

[![Python Version](https://img.shields.io/badge/language-python3.6-blue.svg)](https://www.python.org/downloads/) [![Build Status](https://travis-ci.org/RandolphVI/Hierarchical-Multi-Label-Text-Classification.svg?branch=master)](https://travis-ci.org/RandolphVI/Hierarchical-Multi-Label-Text-Classification)[![Codacy Badge](https://api.codacy.com/project/badge/Grade/80fe0da5f16146219a5d0a66f8c8ed70)](https://www.codacy.com/manual/chinawolfman/Hierarchical-Multi-Label-Text-Classification?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=RandolphVI/Hierarchical-Multi-Label-Text-Classification&amp;utm_campaign=Badge_Grade)[![License](https://img.shields.io/github/license/RandolphVI/Hierarchical-Multi-Label-Text-Classification.svg)](https://www.apache.org/licenses/LICENSE-2.0) 

This repository is my research project, which has been accepted by CIKM'19. The [paper](https://dl.acm.org/citation.cfm?id=3357384.3357885) is already published.

The main objective of the project is to solve the hierarchical multi-label text classification (**HMTC**) problem. Different from the multi-label text classification, HMTC assigns each instance (object) into multiple categories and these categories are stored in a hierarchy structure, is a fundamental but challenging task of numerous applications.

## Requirements

- Python 3.6
- Tensorflow 1.15.0
- Tensorboard 1.15.0
- Sklearn 0.19.1
- Numpy 1.16.2
- Gensim 3.8.3
- Tqdm 4.49.0

## Introduction

Many real-world applications organize data in a hierarchical structure, where classes are specialized into subclasses or grouped into superclasses. For example, an electronic document (e.g. web-pages, digital libraries, patents and e-mails) is associated with multiple categories and all these categories are stored hierarchically in a **tree** or **Direct Acyclic Graph (DAG)**. 

It provides an elegant way to show the characteristics of data and a multi-dimensional perspective to tackle the classification problem via hierarchy structure. 

![](https://farm8.staticflickr.com/7806/31717892987_e2e851eaaf_o.png)

The Figure shows an example of predefined labels in hierarchical multi-label classification of documents in patent texts. 

- Documents are shown as colored rectangles, labels as rounded rectangles. 
- Circles in the rounded rectangles indicate that the corresponding document has been assigned the label. 
- Arrows indicate a hierarchical structure between labels.

## Project

The project structure is below:

```text
.
├── HARNN
│   ├── train.py
│   ├── layers.py
│   ├── ham.py
│   ├── test.py
│   └── visualization.py
├── utils
│   ├── checkmate.py
│   ├── param_parser.py
│   └── data_helpers.py
├── data
│   ├── word2vec_100.model.* [Need Download]
│   ├── Test_sample.json
│   ├── Train_sample.json
│   └── Validation_sample.json
├── LICENSE
├── README.md
└── requirements.txt
```

## Data

You can download the [Patent Dataset](https://drive.google.com/open?id=1So3unr5p_vlYq31gE0Ly07Z2XTvD5QlM) used in the paper. And the [Word2vec model file](https://drive.google.com/file/d/1tZ9WPXkoJmWwtcnOU8S_KGPMp8wnYohR/view?usp=sharing) (dim=100) is also uploaded. **Make sure they are under the `/data` folder.**

:warning: As for **Education Dataset**, they may be subject to copyright protection under Chinese law. Thus, detailed information is not provided.

### :octocat: Text Segment

1. You can use `nltk` package if you are going to deal with the English text data.

2. You can use `jieba` package if you are going to deal with the Chinese text data.

### :octocat: Data Format

See data format in `/data` folder which including the data sample files. For example:

```
{"id": "3930316", 
"title": ["sighting", "firearm"], 
"abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", ...], 
"section": [5], "subsection": [104], "group": [512], "subgroup": [6535], 
"labels": [5, 113, 649, 7333]}
```

- `id`: just the id.
- `title` & `abstract`: it's the word segment (after cleaning stopwords).
- `section` / `subsection` / `group` / `subgroup`: it's the first / second / third / fourth level category index.
- `labels`: it's the total category which add the index offset. (I will explain that later)

### :octocat: How to construct the data?

Use the sample of the Patent Dataset as an example. I will explain how to construct the label index. 
For patent dataset, the class number for each level is: [9, 128, 661, 8364].

**Step 1:** For the first level, Patent dataset has 9 classes. You should index these 9 classes first, like:

```
{"Chemistry": 0, "Physics": 1, "Electricity": 2, "XXX": 3, ..., "XXX": 8}
```

**Step 2**: Next, you index the next level (total **128** classes), like:

```
{"Inorganic Chemistry": 0, "Organic Chemistry": 1, "Nuclear Physics": 2, "XXX": 3, ..., "XXX": 127}
```

**Step 3**: Then, you index the third level (total **661** classes), like:

```
{"Steroids": 0, "Peptides": 1, "Heterocyclic Compounds": 2, ..., "XXX": 660}
```

**Step 4**: If you have the fourth level or deeper level, index them.

**Step 5**: Now suppose you have one record (**id: 3930316** mentioned before):

```
{"id": "3930316", 
"title": ["sighting", "firearm"], 
"abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", ...], 
"section": [5], "subsection": [104], "group": [512], "subgroup": [6535],
"labels": [5, 104+9, 512+9+128, 6535+9+128+661]}
```

Thus, the record should be construed as follows:

```
{"id": "3930316", 
"title": ["sighting", "firearm"], 
"abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", ...], 
"section": [5], "subsection": [104], "group": [512], "subgroup": [6535], 
"labels": [5, 113, 649, 7333]}
```

This repository can be used in other datasets (text classification) in two ways:
1. Modify your datasets into the same format of [the sample](https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/tree/master/data).
2. Modify the data preprocess code in `data_helpers.py`.

Anyway, it should depend on what your data and task are.

### :octocat: Pre-trained Word Vectors

You can pre-training your word vectors(based on your corpus) in many ways:
- Use `gensim` package to pre-train data.
- Use `glove` tools to pre-train data.
- Even can use `bert` to pre-train data.

## Usage

See [Usage](https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/blob/master/Usage.md).

## Network Structure

![](https://live.staticflickr.com/65535/48647692206_2e5e6e7f13_o.png)

## Reference

**If you want to follow the paper or utilize the code, please note the following info in your work:** 

```bibtex
@inproceedings{huang2019hierarchical,
  author    = {Wei Huang and
               Enhong Chen and
               Qi Liu and
               Yuying Chen and
               Zai Huang and
               Yang Liu and
               Zhou Zhao and
               Dan Zhang and
               Shijin Wang},
  title     = {Hierarchical Multi-label Text Classification: An Attention-based Recurrent Network Approach},
  booktitle = {Proceedings of the 28th {ACM} {CIKM} International Conference on Information and Knowledge Management, {CIKM} 2019, Beijing, CHINA, Nov 3-7, 2019},
  pages     = {1051--1060},
  year      = {2019},
}
```
---

## About Me

黄威,Randolph

SCU SE Bachelor; USTC CS Ph.D.

Email: chinawolfman@hotmail.com

My Blog: [randolph.pro](http://randolph.pro)

LinkedIn: [randolph's linkedin](https://www.linkedin.com/in/randolph-%E9%BB%84%E5%A8%81/)


================================================
FILE: Usage.md
================================================
# Usage

## Options

### Input and output options

```
  --train-file              STR    Training file.      		Default is `data/Train_sample.json`.
  --validation-file         STR    Validation file.      	Default is `data/Validation_sample.json`.
  --test-file               STR    Testing file.       		Default is `data/Test_sample.json`.
  --word2vec-file           STR    Word2vec model file.		Default is `data/word2vec_100.model`.
```

### Model option

```
  --pad-seq-len             INT     Padding Sequence length of data.                    Depends on data.
  --embedding-type          INT     The embedding type.                                 Default is 1.
  --embedding-dim           INT     Dim of character embedding.                         Default is 100.
  --lstm-dim                INT     Dim of LSTM neurons.                                Default is 256.
  --lstm-layers             INT     Number of LSTM layers.                              Defatul is 1.
  --attention-dim           INT     Dim of Attention neurons.                           Default is 200.
  --attention-penalization  BOOL    Use attention penalization or not.                  Default is True.
  --fc-dim                  INT     Dim of FC neurons.                                  Default is 512.
  --dropout-rate            FLOAT   Dropout keep probability.                           Default is 0.5.
  --alpha                   FLOAT   Weight of global part in loss cal.                  Default is 0.5.
  --num-classes-list        LIST    Each number of labels in hierarchical structure.    Depends on data.
  --total-classes           INT     Total number of labels.                             Depends on data.
  --topK                    INT     Number of top K prediction classes.                 Default is 5.
  --threshold               FLOAT   Threshold for prediction classes.                   Default is 0.5.
```

### Training option

```
  --epochs                  INT     Number of epochs.                       Default is 20.
  --batch-size              INT     Batch size.                             Default is 32.
  --learning-rate           FLOAT   Adam learning rate.                     Default is 0.001.
  --decay-rate              FLOAT   Rate of decay for learning rate.        Default is 0.95.
  --decay-steps             INT     How many steps before decy lr.          Default is 500.
  --evaluate-steps          INT     How many steps to evluate val set.      Default is 50.
  --l2-lambda               FLOAT   L2 regularization lambda.               Default is 0.0.
  --checkpoint-steps        INT     How many steps to save model.           Default is 50.
  --num-checkpoints         INT     Number of checkpoints to store.         Default is 10.
```

## Training

The following commands train the model.

```bash
$ python3 train_harnn.py
```

Training a model for a 30 epochs and set batch size as 256.

```bash
$ python3 train_harnn.py --epochs 30 --batch-size 256
```

In the beginning, you will see the program shows:

![](https://live.staticflickr.com/65535/49737484641_a1fca341c6_o.png)

**You need to choose Training or Restore. (T for Training and R for Restore)**

After training, you will get the `/log` and  `/run` folder.

- `/log` folder saves the log info file.
- `/run` folder saves the checkpoints.

It should be like this:

```text
.
├── logs
├── runs
│   └── 1586077936 [a 10-digital format]
│       ├── bestcheckpoints
│       ├── checkpoints
│       ├── embedding
│       └── summaries
├── test_harnn.py
├── text_harnn.py
└── train_harnn.py
```

**The programs name and identify the model by using the asctime (It should be 10-digital number, like 1586077936).** 

## Restore

When your model stops training for some reason and you want to restore training, you can:

In the beginning, you will see the program shows:

![](https://live.staticflickr.com/65535/49737999667_b6cd3e0f94_o.png)

**And you need to input R for restore.**

Then you will be asked to give the model name (a 10-digital format, like 1586077936):

![](https://live.staticflickr.com/65535/49737156823_a5945fa958_o.png)

And the model will continue training from the last time.

## Test

The following commands test the model.

```bash
$ python3 test_harnn.py
```

Then you will be asked to give the model name (a 10-digital format, like 1586077936):

![](https://live.staticflickr.com/65535/49737165843_56b8a25363_o.png)

And you can choose to use the best model or the latest model **(B for Best, L for Latest)**:

![](https://live.staticflickr.com/65535/49737168723_08a512aea8_o.png)

Finally, you can get the `predictions.json` file under the `/outputs`  folder, it should be like:

```text
.
├── graph
├── logs
├── output
│   └── 1586077936
│       └── predictions.json
├── runs
│   └── 1586077936
│       ├── bestcheckpoints
│       ├── checkpoints
│       ├── embedding
│       └── summaries
├── test_harnn.py
├── text_harnn.py
└── train_harnn.py
```



================================================
FILE: data/Test_sample.json
================================================
{"id": "5973818", "title": ["method", "apparatus", "controlling", "electrochromic", "device"], "abstract": ["method", "concomitant", "apparatus", "electrochromic", "control", "system", "component", "causing", "charging", "discharging", "electrochromic", "device", "subject", "drift", "error", "error", "case", "error", "actual", "programming", "level", "desired", "programming", "level", "count", "diverge", "invention", "periodically", "determines", "actual", "programming", "level", "electrochromic", "device", "responsively", "adjusts", "parameter", "representative", "desired", "programming", "level"], "section": [6], "subsection": [107], "group": [538], "subgroup": [6846], "labels": [6, 116, 675, 7644]}
{"id": "5973822", "title": ["acousto-optic", "tunable", "filter", "method", "calculating", "equivalence", "incident", "angle"], "abstract": ["non-collinear", "type", "acousto-optic", "tunable", "filter", "incident", "angle", "source", "light", "beam", "radiated", "light", "source", "acoustic", "medium", "set", "equivalence", "incident", "angle", "wavelength", "lambda", "", "diffracted", "ordinary", "ray", "wavelength", "lambda", "", "", "diffracted", "extraordinary", "ray", "approximately", "identical", "diffracted", "ordinary", "ray", "diffracted", "extraordinary", "ray", "approximately", "identical", "wavelength", "superposed", "intensity", "superposed", "ray", "detected", "spectrometry", "performed", "based", "superposed", "diffracted", "ray", "intensity", "sharp", "waveform", "accurate", "spectroscopy", "made", "intensity", "source", "light", "beam", "low"], "section": [6], "subsection": [107], "group": [538], "subgroup": [6846], "labels": [6, 116, 675, 7644]}
{"id": "5974213", "title": ["transparent", "light", "guide", "member"], "abstract": ["light", "guide", "member", "guiding", "beam", "light", "light", "emitting", "element", "fixedly", "mounted", "printed", "circuit", "board", "display", "window", "defined", "casing", "encloses", "light", "emitting", "element", "printed", "circuit", "board", "light", "guide", "member", "includes", "transparent", "rod", "reflecting", "surface", "defined", "location", "length", "transparent", "rod", "transparent", "rod", "designed", "beam", "light", "travel", "dimension", "entire", "length", "transparent", "rod", "light", "receiving", "face", "defined", "end", "transparent", "rod", "light", "emitting", "face", "defined", "opposite", "end", "transparent", "rod"], "section": [6], "subsection": [107], "group": [536], "subgroup": [6834], "labels": [6, 116, 673, 7632]}
{"id": "5974232", "title": ["image", "processing", "apparatus", "executes", "abortion", "image", "processing", "method", "resuming", "aborted", "image", "processing"], "abstract": ["image", "processing", "apparatus", "includes", "input", "inputting", "image", "data", "subjected", "image", "process", "storage", "storing", "image", "data", "inputted", "input", "processing", "reading", "image", "data", "stored", "storage", "subjecting", "read", "image", "data", "instructed", "image", "process", "abortion", "aborting", "image", "process", "image", "data", "performed", "processing", "hold", "instructing", "giving", "instruction", "image", "data", "process", "ha", "aborted", "abortion", "continuously", "held", "storage", "hold", "continuously", "holding", "image", "data", "storage", "based", "instruction", "hold", "instructing", "execution", "reading", "image", "data", "storage", "held", "hold", "storage", "resuming", "image", "process", "image", "data", "aborted", "abortion", "delete", "deleting", "image", "data", "held", "storage", "hold"], "section": [7], "subsection": [123], "group": [639], "subgroup": [7945, 7935], "labels": [7, 132, 776, 8743, 8733]}
{"id": "5974275", "title": ["quality", "assessment", "device"], "abstract": ["quality", "assessment", "device", "provided", "electro-developing", "type", "camera", "electro-developing", "recording", "medium", "sense", "resistant", "electrostatic", "information", "recording", "medium", "provided", "electro-developing", "recording", "medium", "dark", "current", "sensing", "resistor", "connected", "series", "electrostatic", "information", "recording", "medium", "voltage", "sensing", "unit", "connected", "parallel", "dark", "current", "sensing", "resistor", "sense", "voltage", "generated", "release", "switch", "turned", "switch", "dark", "current", "sensing", "circuit", "includes", "dark", "current", "sensing", "resistor", "voltage", "sensing", "unit", "closed", "predetermined", "time", "ha", "elapsed", "dark", "current", "flowing", "dark", "current", "sensing", "resistor", "sensed", "dark", "current", "greater", "threshold", "deemed", "electrostatic", "information", "recording", "medium", "ha", "deteriorated"], "section": [6, 7], "subsection": [123, 107], "group": [639, 538], "subgroup": [7951, 6846, 7935], "labels": [6, 7, 132, 116, 776, 675, 8749, 7644, 8733]}
{"id": "5974343", "title": ["probe", "particulary", "urethral", "probe", "heating", "tissue", "microwave", "measurement", "temperature", "radiometry"], "abstract": ["probe", "urethral", "probe", "heating", "tissue", "microwave", "measurement", "temperature", "radiometry", "probe", "comprises", "hand", "elongated", "antenna", "formed", "conductive", "portion", "", "rolled", "helicoidal", "manner", "elongated", "dielectric", "support", "front", "end", "rear", "end", "hand", "electrical", "connection", "transfer", "microwave", "signal", "antenna", "connected", "external", "generator", "radiometer", "finally", "catheter", "covering", "antenna", "case", "portion", "electrical", "connection", "adjacent", "antenna", "central", "dielectric", "support", "ha", "structure", "circulation", "thermostatic", "fluid", "antenna", "present", "tubular", "channel", "delimited", "helicoidal", "conductor", "portion", "", "structure", "connected", "structure", "", "", "", "", "supply", "evacuation", "thermostatic", "fluid"], "section": [0], "subsection": [12], "group": [61], "subgroup": [705, 701], "labels": [0, 21, 198, 1503, 1499]}
{"id": "5974745", "title": ["self-aligning", "prefabricated", "door", "frame", "assembly"], "abstract": ["invention", "prefabricated", "door", "assembly", "installation", "roughed-in", "door", "frame", "assembly", "includes", "pair", "vertically", "extending", "door", "jamb", "interengaging", "casing", "header", "unit", "spanning", "upper", "end", "door", "jamb", "header", "unit", "includes", "header", "board", "jamb", "interengaging", "horizontal", "casing", "horizontal", "vertical", "casing", "pin", "nail", "protruding", "tongue", "portion", "engage", "jamb", "lightly", "transport", "installation", "prior", "final", "nailing", "place", "assembly", "includes", "l-shaped", "bracket", "affixed", "upper", "outer", "corner", "join", "fasten", "vertical", "horizontal", "jamb", "assembly", "packaged", "kit", "include", "hinge", "shim", "shimming", "hardware"], "section": [4], "subsection": [86], "group": [409], "subgroup": [5190], "labels": [4, 95, 546, 5988]}
{"id": "5974844", "title": ["combination", "key", "transponder", "carrier"], "abstract": ["improved", "combination", "key", "transporter", "assembly", "provided", "head", "key", "includes", "elongated", "slot", "pas", "head", "carrier", "molded", "slot", "disposed", "key", "head", "includes", "hollow", "interior", "bound", "plurality", "tab", "frictionally", "retaining", "transponder", "carrier", "transponder", "inserted", "carrier", "key", "head", "carrier", "transponder", "inserted", "mold", "outer", "sheath", "molded", "head", "carrier", "transponder", "resulting", "assembly", "ha", "slim", "profile", "mounted", "standard", "sized", "key", "chain", "key", "holder", "assembly", "manufactured", "automated", "process", "hand", "sub-assembly", "step"], "section": [6, 4, 8], "subsection": [112, 127, 85], "group": [660, 567, 403], "subgroup": [8360, 5115, 7133], "labels": [6, 4, 8, 121, 136, 94, 797, 704, 540, 9158, 5913, 7931]}
{"id": "5974927", "title": ["circular", "cutting", "machine"], "abstract": ["circular", "cutting", "position", "cutting", "workpiece", "predetermined", "location", "thereof", "gripper", "gripping", "workpiece", "predetermined", "location", "workpiece", "drive", "plurality", "gear", "including", "final", "penultimate", "stage", "gear", "backlash", "eliminator", "braking", "final", "stage", "gear", "eliminating", "backlash", "final", "penultimate", "stage", "gear", "initiation", "cutting", "workpiece", "cutting", "position"], "section": [8, 1, 5], "subsection": [26, 94, 127], "group": [452, 660, 126, 120], "subgroup": [5900, 8363, 1716, 1700, 1628], "labels": [8, 1, 5, 35, 103, 136, 589, 797, 263, 257, 6698, 9161, 2514, 2498, 2426]}
{"id": "5975272", "title": ["torsion", "damping", "device"], "abstract": ["torsion", "damping", "device", "provided", "friction", "device", "torsion", "damping", "device", "includes", "washer", "frictionally", "engaging", "disk", "axial", "action", "spring", "lug", "bearing", "guiding", "washer", "washer", "ha", "substantially", "annular", "shape", "act", "radially", "elastic", "damping", "member"], "section": [5], "subsection": [94], "group": [450], "subgroup": [5836], "labels": [5, 103, 587, 6634]}
{"id": "5975368", "title": ["bi-modal", "dispensing", "system", "particulate", "material"], "abstract": ["dispensing", "structure", "provided", "container", "ha", "opening", "product", "dispensed", "structure", "includes", "body", "extending", "container", "opening", "foraminous", "member", "provided", "plurality", "dispensing", "hole", "movable", "closed", "position", "open", "position", "lid", "provided", "sealingly", "occluding", "foraminous", "member", "moving", "closed", "position", "open", "position"], "section": [0, 1], "subsection": [11, 46], "group": [56, 237], "subgroup": [3015, 618], "labels": [0, 1, 20, 55, 193, 374, 3813, 1416]}
{"id": "5976228", "title": ["reducing", "agent", "forming", "acid", "resistant", "barrier"], "abstract": ["composition", "enhances", "acid", "resistance", "copper", "oxide", "composition", "includes", "solution", "alkali", "metal", "borohydride", "quaternary", "ammonium", "ion", "amount", "selected", "composition", "applied", "copper", "oxide", "composition", "enhances", "acid", "resistance", "copper", "oxide", "preferred", "alkali", "metal", "borohydride", "sodium", "borohydride", "potassium", "borohydride", "preferred", "quaternary", "ammonium", "ion", "ha", "formula", "independently", "comprises", "lower", "alkyl", "hydroxylalkyl", "carboxyalkyl", "group"], "section": [2, 7], "subsection": [124, 68], "group": [334, 649], "subgroup": [4552, 8056], "labels": [2, 7, 133, 77, 471, 786, 5350, 8854]}
{"id": "5976385", "title": ["pool", "cleaning", "sanitizing", "apparatus"], "abstract": ["pool", "apparatus", "simultaneously", "remove", "debris", "water", "kill", "bacteria", "portion", "water", "passing", "pool", "apparatus", "pool", "apparatus", "intake", "head", "drawing", "water", "debris", "region", "pool", "directing", "water", "debris", "housing", "restrictor", "directing", "portion", "water", "bacteria", "killing", "material", "remaining", "portion", "debris", "collector", "debris", "collected", "water", "returned", "pool"], "section": [2, 4], "subsection": [53, 84], "group": [262, 402], "subgroup": [3311, 5106, 3307], "labels": [2, 4, 62, 93, 399, 539, 4109, 5904, 4105]}
{"id": "5976513", "title": ["uv", "protection", "composition"], "abstract": ["present", "invention", "relates", "composition", "suitable", "providing", "protection", "harmful", "effect", "ultraviolet", "radiation", "composition", "provide", "excellent", "efficiency", "broad", "spectrum", "uv", "efficacy", "photostability", "method", "composition", "disclosed", "present", "composition", "comprise", "effective", "amount", "uva-absorbing", "dibenzoylmethane", "sunscreen", "active", "effective", "amount", "naphthalene", "derivative", "formula", "position", "independently", "selected", "group", "consisting", "cho", "cooh", "cor", "", "", "-", "straight", "branched", "alkyl", "aryl", "naphthalene", "derivative", "ha", "triplet", "energy", "state", "kcal", "mol", "kcal", "mol", "suitable", "carrier"], "section": [0], "subsection": [12], "group": [73, 68], "subgroup": [916, 852, 838], "labels": [0, 21, 210, 205, 1714, 1650, 1636]}
{"id": "5976845", "title": ["composite", "antibody", "human", "subgroup", "iv", "light", "chain", "capable", "binding"], "abstract": ["invention", "concern", "subset", "composite", "antibody", "high", "affinity", "high", "molecular", "weight", "tumor-associated", "sialylated", "glycoprotein", "antigen", "human", "origin", "antibody", "variable", "region", "segment", "derived", "human", "subgroup", "iv", "germline", "gene", "segment", "capable", "combining", "form", "dimensional", "structure", "ability", "bind", "vivo", "method", "treatment", "diagnostic", "assay", "composite", "antibody", "disclosed"], "section": [2, 0], "subsection": [58, 12], "group": [282, 68], "subgroup": [3714, 3720, 834], "labels": [2, 0, 67, 21, 419, 205, 4512, 4518, 1632]}
{"id": "5977360", "title": ["process", "producing", "cyclic", "hydrazine", "derivative", "tetra-hydropyridazine", "hexahydropyridazine"], "abstract": ["present", "invention", "relates", "process", "producing", "alicyclic", "hydrazine", "derivative", "tetrahydropyridazine", "hexahydropyridazine", "intermediate", "starting", "material", "medicine", "agricultural", "chemical", "present", "invention", "process", "producing", "alicyclic", "hydrazine", "derivative", "hydrohalogenic", "acid", "salt", "comprises", "reacting", "hydrazine", "hydrohalogenic", "acid", "salt", "diol", "compound", "alicyclic", "ether", "compound", "presence", "excessive", "inorganic", "acid", "existing", "free", "form", "form", "acid", "addition", "salt", "process", "producing", "tetrahydropyridazine", "comprises", "oxidizing", "oxidizing", "agent", "form", "tetrahydropyridazine", "process", "producing", "hexahydropyridazine", "comprises", "oxidizing", "oxidizing", "agent", "synthesizing", "tetrahydropyridazine", "hydrogenating", "tetrahydropyridazine", "presence", "base"], "section": [2], "subsection": [58], "group": [277], "subgroup": [3588, 3611, 3651], "labels": [2, 67, 414, 4386, 4409, 4449]}
{"id": "5977447", "title": ["soybean", "cultivar"], "abstract": ["soybean", "cultivar", "designated", "disclosed", "invention", "relates", "seed", "soybean", "cultivar", "plant", "soybean", "method", "producing", "soybean", "plant", "produced", "crossing", "cultivar", "soybean", "variety", "invention", "relates", "hybrid", "soybean", "seed", "plant", "produced", "crossing", "cultivar", "soybean", "cultivar"], "section": [0], "subsection": [0], "group": [5], "subgroup": [105], "labels": [0, 9, 142, 903]}
{"id": "5977696", "title": ["field", "emission", "electron", "gun", "capable", "minimizing", "nonuniform", "influence", "surrounding", "electric", "potential", "condition", "electron", "emitted", "emitter"], "abstract": ["field", "emission", "electron", "gun", "including", "emitter", "predetermined", "part", "substrate", "insulator", "film", "remaining", "part", "substrate", "gate", "electrode", "insulator", "film", "surround", "emitter", "space", "left", "emitter", "gate", "electrode", "outer", "peripheral", "surface", "defining", "emission", "region", "gate", "edge", "portion", "conductor", "formed", "insulator", "film", "surround", "outer", "peripheral", "surface", "gate", "electrode", "contact", "outer", "peripheral", "surface", "gate", "electrode", "gate", "electrode", "formed", "insulator", "film", "surround", "gate", "edge", "portion", "distance", "left", "gate", "edge", "portion", "gate", "electrode", "applied", "voltage", "le", "voltage", "applied", "gate", "electrode"], "section": [7], "subsection": [120], "group": [605], "subgroup": [7521], "labels": [7, 129, 742, 8319]}
{"id": "5977705", "title": ["photocathode", "image", "intensifier", "tube", "active", "layer", "comprised", "substantially", "amorphic", "diamond-like", "carbon", "diamond", "combination"], "abstract": ["photocathode", "image", "intensifier", "tube", "include", "active", "layer", "comprised", "substantially", "amorphic", "diamond-like", "carbon", "diamond", "combination", "photocathode", "ha", "face", "plate", "coupled", "active", "layer", "active", "layer", "operable", "emit", "electron", "response", "photon", "striking", "face", "plate"], "section": [7], "subsection": [120], "group": [605], "subgroup": [7520, 7506, 7501, 7537], "labels": [7, 129, 742, 8318, 8304, 8299, 8335]}
{"id": "5977945", "title": ["display", "control", "apparatus"], "abstract": ["display", "control", "apparatus", "includes", "display", "device", "driver", "writing", "image", "information", "frame", "buffer", "display", "scanning", "sequentially", "displaying", "image", "data", "stored", "frame", "buffer", "line", "display", "display", "control", "apparatus", "includes", "partially", "rewritten", "line", "determination", "obtaining", "display", "device", "driver", "information", "line", "written", "frame", "buffer", "generating", "accordance", "therewith", "line", "display", "scanned", "display", "scan", "line", "control", "obtaining", "partially", "rewritten", "line", "determination", "line", "scanned", "line", "display", "scanning"], "section": [6], "subsection": [114], "group": [578], "subgroup": [7234, 7225, 7226], "labels": [6, 123, 715, 8032, 8023, 8024]}
{"id": "5977964", "title": ["method", "apparatus", "automatically", "configuring", "system", "based", "user", "monitored", "system", "interaction", "preferred", "system", "access", "time"], "abstract": ["method", "apparatus", "automatically", "configuring", "system", "based", "user", "monitored", "system", "interaction", "preferred", "system", "access", "time", "update", "user", "profile", "user", "based", "part", "monitored", "user", "interaction", "system", "preferred", "system", "access", "time", "user", "identified", "based", "part", "user", "profile", "system", "automatically", "configured", "based", "part", "user", "profile", "user", "preferred", "system", "access", "time"], "section": [6, 7], "subsection": [116, 123], "group": [587, 634, 639], "subgroup": [7938, 7943, 7949, 7294, 7950, 7873], "labels": [6, 7, 125, 132, 724, 771, 776, 8736, 8741, 8747, 8092, 8748, 8671]}
{"id": "5978023", "title": ["color", "video", "camera", "system", "method", "generating", "color", "video", "signal", "increased", "line", "frame", "rate"], "abstract": ["method", "apparatus", "disclosed", "generating", "video", "signal", "representative", "color", "image", "scene", "embodiment", "method", "includes", "step", "deriving", "luminance", "signal", "representative", "scene", "frame", "rate", "deriving", "color", "component", "signal", "representative", "scene", "line", "rate", "generating", "luminance", "signal", "converted", "luminance", "signal", "comprising", "high", "spatial", "frequency", "portion", "luminance", "signal", "frame", "rate", "higher", "frame", "rate", "generating", "color", "component", "signal", "converted", "color", "component", "signal", "line", "rate", "higher", "line", "rate", "combining", "converted", "luminance", "component", "signal", "converted", "color", "component", "signal"], "section": [7], "subsection": [123], "group": [639], "subgroup": [7950, 7951], "labels": [7, 132, 776, 8748, 8749]}
{"id": "5978139", "title": ["diffraction", "grating", "lens", "optical", "disk", "recording", "reproducing", "apparatus"], "abstract": ["invention", "diffraction", "grating", "lens", "suitable", "objective", "lens", "optical", "disk", "recording", "reproducing", "apparatus", "lens", "includes", "light", "transmissive", "substrate", "refractive", "index", "larger", "plane", "plane", "diffraction", "grating", "pattern", "lens", "effect", "constituted", "plurality", "diffraction", "grating", "formed", "plane", "light", "transmissive", "substrate", "diffraction", "grating", "pattern", "focusing", "incident", "light", "beam", "flux", "focal", "point", "provided", "side", "plane", "light", "transmissive", "substrate", "formed", "numerical", "aperture", "calculated", "focal", "point", "peak", "point", "larger"], "section": [6, 1], "subsection": [116, 51, 107], "group": [587, 255, 536], "subgroup": [6833, 3228, 7299], "labels": [6, 1, 125, 60, 116, 724, 392, 673, 7631, 4026, 8097]}
{"id": "5978213", "title": ["electronic", "device", "adjustably", "mounted", "infrared", "device", "tension", "cable"], "abstract": ["adjustably", "mounted", "infrared", "device", "electronic", "device", "disclosed", "embodiment", "invention", "computer", "computer", "ha", "housing", "integral", "infrared", "device", "housing", "ha", "plurality", "surface", "protect", "processor", "housing", "integral", "infrared", "device", "mounted", "adjustably", "housing", "permit", "positioning", "device", "desired", "direction", "independent", "movement", "housing", "embodiment", "invention", "include", "computer", "keyboard", "computer", "printer", "computer", "monitor", "integral", "infrared", "device", "mounted", "adjustably", "thereto", "permit", "position", "device", "desired", "direction", "movement", "keyboard", "printer", "monitor"], "section": [6, 8, 7], "subsection": [120, 127, 111], "group": [660, 558, 604], "subgroup": [7058, 7450, 8347, 7033], "labels": [6, 8, 7, 129, 136, 120, 797, 695, 741, 7856, 8248, 9145, 7831]}
{"id": "5978222", "title": ["semiconductor", "device", "assembly", "board", "through-holes", "filled", "filling", "core"], "abstract": ["semiconductor", "device", "includes", "board", "base", "through-holes", "filled", "filling", "core", "additive", "layer", "provided", "upper", "surface", "board", "base", "upper", "surface", "filling", "core", "additive", "layer", "includes", "wiring", "pattern", "path", "semiconductor", "chip", "fixed", "upper", "surface", "additive", "layer", "node", "provided", "lower", "surface", "board", "base", "path", "laid", "restriction", "posed", "through-holes", "electrically", "connecting", "semiconductor", "chip", "node"], "section": [7], "subsection": [120, 124], "group": [607, 649], "subgroup": [7560, 7550, 7555, 8056, 7551, 8054, 7556, 7546, 7554], "labels": [7, 129, 133, 744, 786, 8358, 8348, 8353, 8854, 8349, 8852, 8354, 8344, 8352]}
{"id": "5978359", "title": ["allocated", "dynamic", "switch", "flow", "control"], "abstract": ["system", "disclosed", "eliminating", "cell", "loss", "flow", "control", "allocated", "dynamic", "bandwidth", "output", "buffer", "switch", "filled", "predetermined", "threshold", "level", "feedback", "message", "provided", "input", "buffer", "prevent", "transmission", "cell", "input", "buffer", "output", "buffer", "order", "provide", "connection", "traffic", "type", "isolation", "buffer", "grouped", "queue", "flow", "control", "implemented", "queue", "basis", "feedback", "message", "digital", "signal", "including", "accept", "reject", "message", "no-op", "xoff", "message", "xoff", "message", "received", "transmitting", "allocated", "bandwidth", "dynamic", "bandwidth", "xoff", "allocated", "message", "received", "regard", "allocated", "bandwidth", "xoff", "dynamic", "message", "received", "regard", "dynamic", "bandwidth", "accept", "received", "requesting", "input", "queue", "cell", "transferred", "output", "queue", "reject", "received", "requesting", "queue", "cell", "transferred", "xoff", "dynamic", "received", "requesting", "input", "queue", "request", "transfer", "output", "queue", "requesting", "input", "queue", "dynamic", "bandwidth", "halted", "receipt", "xon", "message", "output", "queue", "xoff", "allocated", "received", "requesting", "input", "queue", "request", "transfer", "output", "queue", "requesting", "input", "queue", "allocated", "bandwidth", "halted", "receipt", "xon", "message", "output", "queue"], "section": [6, 8, 7], "subsection": [123, 127, 111], "group": [640, 659, 637, 635, 558, 643], "subgroup": [7889, 7916, 8229, 7893, 7915, 7904, 8002, 7907, 7953, 7881, 7037, 7908], "labels": [6, 8, 7, 132, 136, 120, 777, 796, 774, 772, 695, 780, 8687, 8714, 9027, 8691, 8713, 8702, 8800, 8705, 8751, 8679, 7835, 8706]}
{"id": "5978534", "title": ["fiber", "optic", "raman", "probe", "coupler", "assembly"], "abstract": ["fiber", "optic", "raman", "probe", "optical", "coupler", "assembly", "method", "making", "assembly", "reproducibly", "aligning", "plurality", "optical", "fiber", "probe", "includes", "housing", "probe", "body", "probe", "tip", "window", "protecting", "interior", "housing", "light-transmitting", "fiber", "light-receiving", "fiber", "spaced", "light-transmitting", "fiber", "optical", "coupler", "desired", "in-line", "device", "filter", "lens", "positioned", "optical", "communication", "fiber", "coupler", "assembly", "includes", "aligning", "maintain", "fiber", "precise", "reproducible", "relative", "alignment", "fiber", "assembly", "fiber", "cut", "install", "filter", "in-line", "device", "readily", "re-assembled", "cut", "end", "accurately", "re-aligned", "probe", "simple", "rugged", "manufactured", "assembled", "high-precision", "machining", "optical", "alignment", "procedure"], "section": [6], "subsection": [106, 107], "group": [528, 536], "subgroup": [6721, 6834], "labels": [6, 115, 116, 665, 673, 7519, 7632]}
{"id": "5978758", "title": ["vector", "quantizer", "quantization", "input", "base", "vector", "quantization", "input", "vector", "quantization", "output"], "abstract": ["vector", "quantizer", "generates", "output", "codevectors", "number", "number", "determined", "predetermined", "number", "bit", "linear", "coupling", "integer", "coefficient", "predetermined", "number", "base", "vector", "stored", "base", "vector", "memory", "vector", "quantizer", "determines", "coefficient", "base", "vector", "output", "index", "output", "codevectors"], "section": [6, 7], "subsection": [115, 122], "group": [632, 586], "subgroup": [7853, 7273], "labels": [6, 7, 124, 131, 769, 723, 8651, 8071]}
{"id": "5978912", "title": ["network", "enhanced", "bios", "enabling", "remote", "management", "computer", "functioning", "operating", "system"], "abstract": ["method", "system", "communicating", "computer", "network", "prior", "booting", "computer", "operating", "system", "operating", "system", "failure", "provided", "multitasking", "kernel", "implemented", "network", "enhanced", "bios", "external", "reference", "nic", "device", "driver", "resolved", "reference", "service", "provided", "network", "enhanced", "bios", "workstation", "coupled", "computer", "network", "access", "set", "status", "computer", "prior", "loading", "operating", "system", "operating", "system", "failure", "multitasking", "kernel", "operated", "simultaneously", "conventional", "bios", "computer", "provided", "alerting", "workstation", "event", "post", "failure", "operating", "system", "crash"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7062, 7034], "labels": [6, 120, 695, 7860, 7832]}
{"id": "5979014", "title": ["mobile", "wet", "dry", "vacuum", "device"], "abstract": ["wet", "dry", "vacuum", "device", "includes", "canister", "unit", "pivotally", "mounted", "upstanding", "portion", "support", "carriage", "movement", "lowered", "in-use", "position", "raised", "emptying", "position", "pivotally", "attached", "upstanding", "portion", "support", "carriage", "lifting", "assist", "lever", "canister", "unit", "rest", "movement", "lowered", "raised", "position", "interposed", "carriage", "lifting", "assist", "lever", "device", "linear", "acting", "fluid", "spring", "assisting", "manually", "tilting", "canister", "unit", "fluid", "spring", "preferably", "interconnected", "carriage", "lifting", "assist", "lever", "respective", "loss", "motion", "connection", "enable", "large", "tilting", "range", "canister", "unit", "minimizing", "required", "length", "fluid", "spring", "canister", "unit", "readily", "removable", "remainder", "wet", "dry", "vacuum", "device", "provided", "pouring", "spout", "extending", "rearwardly", "upper", "portion", "thereof", "enhance", "draining", "content", "canister", "unit", "tilting", "canister", "unit", "removal", "thereof", "carriage"], "section": [0], "subsection": [11], "group": [60], "subgroup": [695, 696], "labels": [0, 20, 197, 1493, 1494]}
{"id": "5979074", "title": ["method", "device", "drying", "sawn", "timber", "reduced", "pressure"], "abstract": ["invention", "relates", "process", "apparatus", "dry", "cut", "timber", "hygroscopical", "plate-shaped", "bar-shaped", "good", "subatmospheric", "pressure", "vacuum-solid", "drying", "chamber", "equiped", "ventilator", "fan", "effecting", "crosswise", "length", "axis", "chamber", "revolve", "gaseous", "drying", "medium", "heating", "coil", "extending", "length", "chamber", "dehumidifying", "device", "condenser", "task", "invention", "regulate", "heat", "energy", "supply", "individual", "stack", "area", "removal", "humidity", "contained", "wood", "independent", "stack", "area", "charge", "drying", "chamber", "existing", "arising", "dispersion", "wood", "moisture", "stack", "area", "due", "inhomogeneous", "condition", "inside", "drying", "chamber", "eliminated", "drying", "stage", "entering", "final", "equalizing", "conditioning", "stage"], "section": [5], "subsection": [101], "group": [499], "subgroup": [6402, 6408], "labels": [5, 110, 636, 7200, 7206]}
{"id": "5979226", "title": ["leak", "detection", "additive", "oil", "fuel", "system"], "abstract": ["dye-delivery", "composition", "introducing", "leak", "detection", "dye", "engine", "oil", "fuel", "system", "dye-delivery", "composition", "mixture", "lubricant", "leak", "detection", "dye", "dye-delivery", "composition", "thixotropic", "paste", "suspension", "unitary", "structure", "dye-delivery", "composition", "inserted", "location", "engine", "oil", "fuel", "system"], "section": [6, 2, 8], "subsection": [106, 61, 127], "group": [307, 527, 659], "subgroup": [4268, 8188, 6701], "labels": [6, 2, 8, 115, 70, 136, 444, 664, 796, 5066, 8986, 7499]}
{"id": "5979393", "title": ["engine", "control", "unit", "mounting", "apparatus", "motor", "vehicle"], "abstract": ["commonly", "engine", "control", "unit", "mounted", "place", "passenger", "compartment", "present", "invention", "engine", "control", "unit", "mounting", "apparatus", "accommodating", "engine", "control", "unit", "directly", "mounted", "engine", "utilizing", "space", "bank", "offset", "side", "left", "bank", "engine", "control", "unit", "mounting", "apparatus", "includes", "material", "good", "heat", "conductivity", "aluminum", "alloy", "connecting", "terminal", "directed", "passenger", "compartment", "result", "electrical", "connection", "wiring", "harness", "passenger", "compartment", "easy", "advantage", "present", "invention", "shorten", "length", "wiring", "harness", "engine", "control", "unit", "sensor", "switch", "actuator", "engine", "facilitate", "connection", "wiring", "harness"], "section": [1], "subsection": [41], "group": [202], "subgroup": [2521], "labels": [1, 50, 339, 3319]}
{"id": "5979461", "title": ["smoking", "article", "wrapper", "filler", "hydromagnesite", "magnesium", "hydroxide", "smoking", "article", "made", "wrapper"], "abstract": ["hydromagnesite-magnesium", "hydroxide", "composition", "filler", "smoking", "article", "wrapper", "significantly", "reduce", "amount", "sidestream", "smoke", "produced", "burning", "smoking", "article", "providing", "smoking", "article", "good", "subjective", "characteristic"], "section": [0], "subsection": [4], "group": [30], "subgroup": [317], "labels": [0, 13, 167, 1115]}
{"id": "5979562", "title": ["hoof", "care", "stand", "livestock"], "abstract": ["farrier", "stand", "steel", "rod", "construction", "elliptical-shaped", "hoof", "cradle", "method", "constructing", "stand", "includes", "bending", "parallel", "connected", "rod", "mandrel", "jig", "rod", "separated", "connection", "form", "hoof", "cradle", "inverted", "u-shaped", "stand", "supported", "composite", "apex", "leg", "spaced-apart", "singular", "rod", "leg"], "section": [0], "subsection": [0], "group": [8], "subgroup": [158, 157], "labels": [0, 9, 145, 956, 955]}
{"id": "5979771", "title": ["apparatus", "verify", "position", "electrical", "contact", "sliding", "sim", "mechanism"], "abstract": ["sim", "contact", "position", "tester", "verifying", "position", "sim", "card", "contact", "printed", "wiring", "board", "provided", "trace", "a-d", "correspond", "contact", "sim", "card", "reader", "connector", "configured", "mate", "contact", "sim", "card", "reader", "connector", "mounted", "radio", "telephone", "plurality", "light", "emitting", "diode", "led", "coupled", "trace", "a-d", "light", "emitting", "diode", "configured", "provide", "indication", "position", "contact", "pwb", "positioned", "radio", "telephone", "embodiment", "led", "sequentially", "light", "printed", "wiring", "board", "moved", "position", "contact", "sim", "card", "reader", "connector"], "section": [6, 7], "subsection": [124, 111], "group": [649, 561], "subgroup": [8051, 7080], "labels": [6, 7, 133, 120, 786, 698, 8849, 7878]}
{"id": "5979938", "title": ["adjustable", "steering", "column", "motor", "vehicle"], "abstract": ["adjustable", "motor", "vehicle", "steering", "column", "including", "stationary", "element", "adjustable", "element", "supported", "stationary", "element", "relative", "linear", "translation", "steering", "wheel", "adjustable", "element", "infinitely", "adjustable", "primary", "clamp", "secondary", "clamp", "preventing", "relative", "linear", "translation", "adjustable", "element", "collapse", "direction", "event", "primary", "clamp", "overpowered", "primary", "clamp", "includes", "pair", "depending", "lever", "stationary", "element", "pair", "bos", "depending", "lever", "control", "shaft", "spanning", "depending", "lever", "rotatable", "control", "lever", "cam", "depending", "lever", "follower", "control", "shaft", "cam", "follower", "flex", "depending", "lever", "thrust", "bos", "adjustable", "element", "capture", "friction", "position", "relative", "stationary", "element", "secondary", "clamp", "includes", "tubular", "sleeve", "control", "shaft", "eccentric", "lobe", "spring", "biased", "planar", "race", "adjustable", "element", "primary", "clamp", "overpowered", "onset", "relative", "linear", "translation", "planar", "race", "rotates", "sleeve", "direction", "progressively", "tightly", "wedge", "eccentric", "lobe", "planar", "race"], "section": [1], "subsection": [43], "group": [219], "subgroup": [2675], "labels": [1, 52, 356, 3473]}
{"id": "5980055", "title": ["chemiluminescent", "device", "integral", "light", "shield"], "abstract": ["instant", "invention", "light", "shield", "formed", "integral", "chemiluminescent", "device", "effectively", "block", "ambient", "light", "inhibiting", "photo", "degradation", "chemical", "reagent", "exposed", "external", "light", "source", "light", "shield", "displaces", "conventional", "foil", "product", "packaging", "designed", "protect", "light", "permit", "instant", "easy", "activation", "chemiluminescent", "reagent", "interfering", "chemiluminescent", "reaction", "integral", "light", "shield", "simplify", "packaging", "extend", "product", "shelf", "life", "chemiluminescent", "reagent"], "section": [5], "subsection": [96], "group": [465], "subgroup": [6036], "labels": [5, 105, 602, 6834]}
{"id": "5980249", "title": ["method", "device", "treatment", "dentition"], "abstract": ["dental", "appliance", "adaptable", "fit", "range", "variously", "sized", "dental", "arch", "composed", "polymeric", "material", "preferably", "comprises", "hydrophilic", "foam", "medicinal", "agent", "carbamide", "peroxide", "dry", "hydrated", "form", "incorporated", "predispensed", "embodiment", "invention", "appliance", "provided", "packaging", "medicinal", "agent", "provided", "separate", "dispenser", "minimizes", "prevents", "permeation", "water"], "section": [0], "subsection": [12], "group": [62], "subgroup": [733], "labels": [0, 21, 199, 1531]}
{"id": "5980338", "title": ["low", "profile", "female", "terminal", "mating", "post-like", "male", "terminal"], "abstract": ["one-piece", "female", "terminal", "provided", "interconnection", "post-like", "male", "terminal", "female", "terminal", "includes", "base", "portion", "plurality", "inwardly", "curved", "contact", "beam", "integral", "extending", "base", "portion", "defining", "interior", "socket", "receiving", "male", "terminal", "plurality", "shell", "finger", "integral", "extend", "base", "portion", "exteriorly", "contact", "beam", "provide", "protection", "beam"], "section": [7], "subsection": [120], "group": [611], "subgroup": [7611, 7617, 7610], "labels": [7, 129, 748, 8409, 8415, 8408]}
{"id": "5980361", "title": ["method", "device", "polishing", "semiconductor", "wafer"], "abstract": ["method", "polishing", "semiconductor", "wafer", "mounted", "front", "side", "support", "plate", "side", "face", "pressed", "anst", "polishing", "plate", "covered", "polishing", "cloth", "specific", "polishing", "pressure", "polished", "device", "provided", "suitable", "carrying", "method", "method", "includes", "applying", "specific", "pressure", "plurality", "pressure", "chamber", "prior", "polishing", "semiconductor", "wafer", "polishing", "semiconductor", "wafer", "transmitting", "polishing", "pressure", "rear", "side", "support", "plate", "elastic", "bearing", "surface", "pressure", "chamber", "pressure", "ha", "applied"], "section": [1], "subsection": [27], "group": [127], "subgroup": [1733, 1735, 1738], "labels": [1, 36, 264, 2531, 2533, 2536]}
{"id": "5980608", "title": ["throughflow", "gas", "storage", "dispensing", "system"], "abstract": ["apparatus", "storage", "dispensing", "gas", "comprising", "gas", "storage", "dispensing", "vessel", "holding", "physical", "sorbent", "medium", "gas", "adsorbed", "physical", "sorbent", "medium", "carrier", "gas", "helium", "hydrogen", "argon", "flowed", "vessel", "effect", "desorption", "sorbate", "gas", "entrainment", "desorbed", "gas", "carrier", "gas", "stream", "storage", "dispensing", "system", "invention", "employed", "provide", "dispensed", "sorbate", "gas", "downstream", "locus", "application", "epitaxial", "film", "formation", "ion", "implantation", "manufacture", "semiconductor", "device"], "section": [5], "subsection": [95], "group": [462], "subgroup": [6013], "labels": [5, 104, 599, 6811]}
{"id": "5980634", "title": ["coating", "applicator", "blade", "shaping"], "abstract": ["flexible", "blade", "metering", "device", "inserted", "nip", "formed", "radiused", "profile", "portion", "fixed", "rigid", "loading", "element", "substrate", "roll", "flexible", "blade", "forced", "shape", "profile", "portion", "nip", "meter", "coating", "desired", "thickness", "consistency", "inflatable", "air", "tube", "engage", "loading", "element", "adjust", "thickness", "coating"], "section": [3, 1], "subsection": [19, 80], "group": [382, 98], "subgroup": [4910, 1322, 1317], "labels": [3, 1, 28, 89, 519, 235, 5708, 2120, 2115]}
{"id": "5981225", "title": ["gene", "transfer", "vector", "recombinant", "adenovirus", "particle", "method", "producing", "method"], "abstract": ["gene", "transfer", "vector", "comprising", "adenovirus", "inverted", "terminal", "repeat", "adenovirus", "packaging", "signal", "adenoviral", "vai", "gene", "vaii", "gene", "recombinant", "adenovirus", "particle", "method", "producing", "method", "introduce", "express", "foreign", "gene", "adenovirus", "target", "cell", "disclosed"], "section": [2], "subsection": [63], "group": [319], "subgroup": [4362, 4348], "labels": [2, 72, 456, 5160, 5146]}
{"id": "5981268", "title": ["hybrid", "biosensors"], "abstract": ["invention", "relates", "apparatus", "method", "monitoring", "cell", "method", "monitoring", "change", "cell", "addition", "analyte", "cell", "environment", "comprising", "device", "includes", "array", "microelectrodes", "disposed", "cell", "culture", "chamber", "array", "portion", "cell", "adhere", "surface", "microelectrodes", "diameter", "cell", "larger", "diameter", "microelectrodes", "voltage", "signal", "applied", "microelectrodes", "reference", "electrode", "detection", "monitoring", "signal", "resulting", "application", "voltage", "signal", "information", "electrical", "characteristic", "individual", "cell", "including", "impedance", "combined", "cell", "membrane", "capacitance", "conductance", "action", "potential", "parameter", "cell", "membrane", "capacitance", "cell", "membrane", "conductance", "cell", "substrate", "seal", "resistance", "invention", "detecting", "screening", "variety", "biological", "chemical", "agent"], "section": [6, 2], "subsection": [106, 63], "group": [318, 528], "subgroup": [4341, 6748], "labels": [6, 2, 115, 72, 455, 665, 5139, 7546]}
{"id": "5981290", "title": ["microscale", "combustion", "calorimeter"], "abstract": ["calorimeter", "measuring", "flammability", "parameter", "material", "milligram", "sample", "quantity", "thermochemical", "thermophysical", "process", "flaming", "combustion", "solid", "reproduced", "device", "rapid", "anaerobic", "pyrolysis", "thermogravimetric", "analyzer", "volatile", "anaerobic", "thermal", "decomposition", "product", "swept", "pyrolysis", "chamber", "inert", "gas", "combined", "excess", "oxygen", "combustion", "chamber", "maintained", "hundred", "degree", "centigrade", "simulate", "combustion", "reaction", "occur", "ventilated", "diffusion", "flame", "mass", "loss", "measured", "continuously", "process", "heat", "release", "rate", "calculated", "oxygen", "consumed", "gas", "stream"], "section": [6], "subsection": [106], "group": [525, 528], "subgroup": [6750, 6671], "labels": [6, 115, 662, 665, 7548, 7469]}
{"id": "5981624", "title": ["composition"], "abstract": ["reduced", "shade", "paint", "ink", "comprising", "base", "paint", "ink", "comprising", "base", "pigment", "titanium", "dioxide", "film-forming", "resin", "non-polar", "liquid", "white", "spirit", "dispersant", "phosphate", "ester", "compound", "formula", "group", "ro", "--", "group", "--", "eo", "--", "-", "alkyl", "independently", "tinter", "composition", "comprising", "colored", "pigment", "water", "water-miscible", "solvent", "ethyleneglycol"], "section": [2, 1], "subsection": [15, 60, 59], "group": [293, 87, 286], "subgroup": [4080, 3852, 4043, 1181], "labels": [2, 1, 24, 69, 68, 430, 224, 423, 4878, 4650, 4841, 1979]}
{"id": "5981852", "title": ["modification", "sucrose", "phosphate", "synthase", "plant"], "abstract": ["sucrose", "phosphate", "synthase", "sps", "process", "preparation", "dna", "utilization", "dna", "encoding", "sps", "modify", "expression", "sps", "plant", "cell", "provided", "method", "composition", "producing", "sps", "protein", "dna", "encoding", "sps", "number", "source", "provided", "provided", "transgene", "comprising", "dna", "encoding", "sps", "method", "production", "transgenic", "plant", "cell", "plant", "extra", "sps", "activity", "increased", "capacity", "synthesize", "sucrose", "transgenic", "plant", "cell", "plant", "additional", "sps", "activity", "exhibit", "altered", "carbon", "partitioning", "growth", "development", "yield", "variety", "condition"], "section": [2, 8], "subsection": [63, 125, 58], "group": [650, 319, 282], "subgroup": [4378, 4348, 8063, 3714], "labels": [2, 8, 72, 134, 67, 787, 456, 419, 5176, 5146, 8861, 4512]}
{"id": "5981861", "title": ["electro-mechanically", "driven", "sound", "board"], "abstract": ["sound", "replicating", "device", "ha", "electro-mechanically", "driven", "sound", "board", "mounted", "sound", "replicating", "device", "electro-mechanically", "driven", "sound", "board", "adapted", "resonator", "board", "instrument"], "section": [6], "subsection": [115], "group": [584], "subgroup": [7258, 7255], "labels": [6, 124, 721, 8056, 8053]}
{"id": "5981876", "title": ["pc", "cable", "protective", "sheath", "prestressed", "concrete"], "abstract": ["sheath", "provided", "condition", "outer", "surface", "thereof", "formed", "uneven", "helical", "shape", "outer", "surface", "trough", "flat", "width", "trough", "inflection", "point", "curve", "surface", "trough", "width", "top", "inflection", "point", "curve", "top", "satisfy", "relation", ">w", "thickness", "trough", "thickness", "top", "satisfy", "relation", ">t", "projection", "surface", "trough", "formed", "gentle", "arc", "compared", "recess", "surface", "top", "perimeter", "recess", "surface", "project", "circumferentially", "outward", "outer-perimeter", "outer", "surface", "trough", "sheath", "formed", "polyolefin", "resin", "material"], "section": [4], "subsection": [84], "group": [398], "subgroup": [5047], "labels": [4, 93, 535, 5845]}
{"id": "5981908", "title": ["heating", "apparatus", "vertically", "stacked", "hair", "roller"], "abstract": ["hair", "roller", "heating", "apparatus", "heating", "hair", "roller", "ha", "base", "plurality", "heating", "rod", "sufficient", "length", "simultaneously", "hold", "heat", "plurality", "hair", "roller", "heating", "rod", "distal", "portion", "proximal", "portion", "proximal", "portion", "attached", "base", "distal", "portion", "free", "receiving", "hair", "roller", "heating", "rod", "outer", "casing", "heating", "element", "outer", "casing", "electrical", "cord", "electricity", "electrical", "source", "heating", "element", "heating", "rod", "impart", "sufficient", "heat", "hair", "roller", "heat", "roller", "desired", "temperature", "preferred", "embodiment", "heating", "rod", "inch", "length"], "section": [0], "subsection": [9], "group": [48], "subgroup": [497], "labels": [0, 18, 185, 1295]}
{"id": "5981931", "title": ["image", "pick-up", "device", "radiation", "imaging", "apparatus", "device"], "abstract": ["image", "pick-up", "device", "comprises", "insulating", "substrate", "plurality", "pixel", "including", "photo-electric", "conversion", "circuit", "thin-film", "transistor", "connected", "photoelectric", "conversion", "circuit", "including", "lamination", "insulating", "film", "semiconductor", "film", "pixel", "mounted", "array", "insulating", "substrate", "plurality", "signal", "line", "read", "voltage", "store", "photoelectric", "conversion", "circuit", "thin-film", "transistor", "formed", "insulating", "substrate", "plurality", "wiring", "formed", "insulating", "substrate", "insulating", "film", "lamination", "thin-film", "transistor", "formed", "wiring", "signal", "line", "crossing", "thereof"], "section": [7], "subsection": [123, 120], "group": [607, 639], "subgroup": [7557, 7949], "labels": [7, 132, 129, 744, 776, 8355, 8747]}
{"id": "5982031", "title": ["power", "semiconductor", "module", "closed", "submodules"], "abstract": ["present", "invention", "discloses", "power", "semiconductor", "module", "encapsulated", "submodules", "suitable", "power", "switch", "rectifier", "industrial", "traction", "drive", "submodules", "sandwiched", "structure", "made", "ceramic", "substrate", "power", "semiconductor", "chip", "molybdenum", "wafer", "potted", "plastic", "held", "plug-in", "location", "common", "baseplate", "make", "contact", "stack", "arrangement", "conductor", "retention", "contact", "submodules", "place", "reversibly", "pressure", "contact", "clamp", "contact", "important", "advantage", "power", "semiconductor", "module", "relate", "simple", "easily", "scaleable", "structure", "improved", "ability", "withstand", "thermal", "load", "cycle", "robustness", "easy", "interchangeability", "submodules"], "section": [7], "subsection": [120], "group": [607], "subgroup": [7560, 7556, 7550], "labels": [7, 129, 744, 8358, 8354, 8348]}
{"id": "5982221", "title": ["switched", "current", "temperature", "sensor", "circuit", "compounded", "delta"], "abstract": ["switched", "current", "temperature", "sensor", "circuit", "compounded", "delta", "includes", "amplifier", "inverting", "input", "non-inverting", "output", "non-inverting", "input", "inverting", "output", "pn", "junction", "connected", "non-inverting", "input", "input", "capacitor", "pn", "junction", "connected", "inverting", "input", "input", "capacitor", "current", "supply", "including", "low", "current", "source", "high", "current", "source", "switching", "device", "applying", "auto", "mode", "high", "current", "source", "terminal", "pn", "junction", "low", "current", "source", "terminal", "pn", "junction", "providing", "junction", "capacitor", "providing", "junction", "capacitor", "applying", "temperature", "measurement", "mode", "low", "current", "source", "terminal", "pn", "junction", "high", "current", "source", "terminal", "pn", "junction", "providing", "negative", "delta", "pn", "junction", "capacitor", "positive", "delta", "pn", "junction", "capacitor", "feedback", "capacitor", "interconnected", "inverting", "output", "non-inverting", "input", "feedback", "capacitor", "interconnected", "non-inverting", "output", "inverting", "input", "amplifier", "define", "gain", "delta", "input", "produce", "differential", "voltage", "output", "representative", "average", "temperature", "pn", "junction", "reset", "switching", "device", "discharging", "feedback", "capacitor", "enabling", "amplifier", "equalize", "input", "auto-zero", "mode"], "section": [6, 7], "subsection": [106, 120], "group": [607, 525], "subgroup": [7560, 7554, 6680], "labels": [6, 7, 115, 129, 744, 662, 8358, 8352, 7478]}
{"id": "5982301", "title": ["navigation", "apparatus"], "abstract": ["navigation", "apparatus", "capable", "outputting", "guide", "information", "point", "input", "driver", "response", "request", "driver", "previously", "store", "map", "information", "specifies", "automobile", "position", "map", "information", "detecting", "signal", "gps", "signal", "gyroscopic", "signal", "speed", "pulse", "signal", "retrieves", "point", "guided", "map", "information", "basis", "present", "position", "automobile", "produce", "guide", "information", "point", "guided", "processing", "map", "information", "display", "guide", "information", "point", "guided", "guide", "switch", "touch", "panel", "key", "display", "mark", "distance", "target", "destination", "point", "azimuth", "target", "destination", "point", "running", "direction", "target", "destination", "point", "displayed"], "section": [6], "subsection": [106, 113], "group": [573, 519], "subgroup": [6605, 7177], "labels": [6, 115, 122, 710, 656, 7403, 7975]}
{"id": "5982386", "title": ["image", "boundary", "correction", "fractal", "processing"], "abstract": ["part", "image", "boundary", "target", "boundary", "portion", "processed", "subjected", "fractal", "processing", "procedure", "give", "corrected", "image", "boundary", "cycle", "fractal", "processing", "magnifies", "target", "boundary", "portion", "time", "target", "boundary", "portion", "contracted", "integer", "le", "prior", "fractal", "processing", "fractal", "processing", "recursively", "executed", "time", "contracted", "target", "boundary", "portion"], "section": [6], "subsection": [111], "group": [565], "subgroup": [7107, 7113, 7114], "labels": [6, 120, 702, 7905, 7911, 7912]}
{"id": "5982393", "title": ["arrangement", "image", "processor"], "abstract": ["present", "invention", "relates", "parallel", "processor", "number", "processor", "element", "type", "integrated", "semiconductor", "chip", "processor", "type", "image", "signal", "processing", "information", "stored", "processor", "element", "device", "unit", "block", "processor", "element", "characterized", "unit", "block", "comprises", "incrementing", "unit", "designed", "add", "signal", "supplied", "unit", "block", "signal", "originates", "incrementing", "unit", "respective", "unit", "closest", "preceding", "unit", "block", "direction", "processor", "element", "matrix", "unit", "block", "logical", "unit", "designed", "perform", "boolean", "logic", "operation", "signal", "received", "incrementing", "unit", "unit", "block"], "section": [6], "subsection": [111], "group": [558, 565], "subgroup": [7099, 7037], "labels": [6, 120, 695, 702, 7897, 7835]}
{"id": "5982457", "title": ["radio", "receiver", "detecting", "digital", "analog", "television", "radio-frequency", "signal", "single", "detector"], "abstract": ["radio", "receiver", "receiving", "dtv", "signal", "accordance", "advanced", "television", "system", "committee", "atsc", "standard", "analog", "tv", "accordance", "national", "television", "sub-committee", "ntsc", "standard", "single", "detector", "type", "signal", "single", "detector", "supply", "output", "signal", "intermediate-frequency", "amplifier", "chain", "tv", "signal", "intermediate-frequency", "amplifier", "chain", "analog", "tv", "signal", "response", "amplifier", "chain", "dtv", "signal", "synchrodyned", "baseband", "supplied", "symbol", "decoding", "circuitry", "automatic", "gain", "control", "circuitry", "develop", "agc", "amplifier", "stage", "amplifier", "chain", "dtv", "signal", "received", "response", "amplifier", "chain", "analog", "tv", "signal", "supplied", "video", "detector", "automatic", "gain", "control", "circuitry", "develops", "agc", "amplifier", "stage", "amplifier", "chain", "composite", "video", "signal", "reproduced", "video", "detector", "analog", "tv", "signal", "received", "radio", "receiver", "sound", "carrier", "ntsc", "signal", "ha", "separate", "intermediate-frequency", "amplifier", "chain", "absence", "mhz", "intercarrier", "sound", "detected", "dtv", "signal", "received", "automatically", "fine", "tune", "detector", "response", "pilot", "carrier", "obtain", "delayed", "agc", "radio-frequency", "amplifier", "agc", "circuitry", "presence", "intercarrier", "sound", "detected", "analog", "tv", "signal", "received", "automatically", "fine", "tune", "detector", "response", "video", "carrier", "obtain", "delayed", "agc", "radio-frequency", "amplifier", "agc", "circuitry"], "section": [7], "subsection": [123, 122], "group": [629, 639], "subgroup": [7827, 7949], "labels": [7, 132, 131, 766, 776, 8625, 8747]}
{"id": "5982518", "title": ["optical", "add-drop", "multiplexer", "compatible", "dense", "wdm", "optical", "communication", "system"], "abstract": ["present", "invention", "add-drop", "multiplexer", "compatible", "dense", "wavelength", "division", "multiplexed", "wdm", "system", "large", "number", "optical", "channel", "add-drop", "multiplexer", "employ", "set", "bragg", "grating", "separated", "optical", "isolator", "reliably", "add", "drop", "optical", "channel", "crosstalk", "bragg", "grating", "set", "optical", "isolator", "interposed", "optical", "coupler", "optical", "channel", "dropped", "wdm", "optical", "signal", "reflected", "set", "bragg", "grating", "exit", "add-drop", "multiplexer", "coupler", "optical", "channel", "added", "wdm", "optical", "signal", "enter", "add-drop", "multiplexer", "optical", "coupler"], "section": [6, 7], "subsection": [123, 107], "group": [635, 536], "subgroup": [6834, 7877], "labels": [6, 7, 132, 116, 772, 673, 7632, 8675]}
{"id": "5982653", "title": ["add-on", "intermixed", "pin", "connection"], "abstract": ["substrate", "number", "memory", "chip", "standard", "arrangement", "trace", "data", "address", "line", "intermixed", "re-routed", "connect", "memory", "chip", "add-on", "card", "module", "processor", "sram", "card", "connection", "processor", "pin", "sram", "pin", "intermixed", "memory", "add-on", "card", "module", "line", "module", "connector", "memory", "chip", "pin", "intermixed", "bit", "addressed", "event", "chip", "transparent", "user", "re-routing", "ha", "occurred", "re-routing", "simplify", "trace", "layout", "significantly", "eliminating", "required", "cross-overs"], "section": [6], "subsection": [116], "group": [588], "subgroup": [7319], "labels": [6, 125, 725, 8117]}
{"id": "5982822", "title": ["viterbi", "decoder"], "abstract": ["viterbi", "decoder", "performs", "viterbi", "decoding", "high", "speed", "low", "power", "consumption", "memory", "random", "access", "memory", "path", "selection", "information", "storage", "unit", "adder-comparator-selector", "ac", "processing", "unit", "time-divisionally", "perform", "ac", "processing", "odd", "number", "state", "based", "branch", "metric", "branch", "metric", "computing", "unit", "path", "metric", "previous", "period", "produce", "path", "selection", "information", "state", "path", "selection", "information", "storage", "collected", "temporary", "storage", "circuit", "written", "path", "selection", "information", "storage", "unit", "path", "selection", "information", "storage", "unit", "past", "path", "selection", "information", "read", "time", "write", "time", "path", "selection", "information", "path", "selection", "information", "maximum", "likelihood", "state", "path", "selection", "information", "path", "selection", "information", "storage", "unit", "read", "time", "ac", "processing", "performed", "state"], "section": [7], "subsection": [122], "group": [632], "subgroup": [7850], "labels": [7, 131, 769, 8648]}
{"id": "5982895", "title": ["finite", "field", "inverse", "circuit", "elliptic", "curve", "processor"], "abstract": ["finite", "field", "inverse", "circuit", "elliptic", "curve", "processor", "finite", "field", "inverse", "circuit", "comprises", "control", "circuit", "data", "circuit", "data", "circuit", "comprises", "data", "multiplexer", "coupling", "content", "register", "finite", "field", "arithmetic", "logic", "unit", "plurality", "bit", "representing", "finite", "field", "element", "inverted", "initially", "loaded", "register", "control", "circuit", "comprises", "shift", "register", "suitable", "storing", "plurality", "bit", "representing", "size", "finite", "field", "element", "inverted", "counter", "detection", "circuitry", "provided", "coupled", "shift", "register", "decrement", "shift", "detect", "content", "shift", "register", "generates", "control", "signal", "connected", "control", "signal", "input", "multiplexer", "data", "circuit", "order", "series", "finite", "field", "operation", "performed", "content", "register", "compute", "inverse", "plurality", "bit", "representing", "finite", "field", "element"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7060], "labels": [6, 120, 695, 7858]}
{"id": "5982899", "title": ["method", "verifying", "configuration", "computer", "system"], "abstract": ["method", "verification", "configuration", "data", "expressive", "configuration", "computer", "system", "computer", "system", "configuration", "data", "stored", "includes", "identifier", "uniquely", "identifying", "computer", "system", "copy", "stored", "configuration", "data", "encoded", "encoding", "method", "identifier", "encoded", "configuration", "data", "encrypted", "encryption", "method", "private", "key", "subsequently", "encrypted", "configuration", "data", "decrypted", "decryption", "method", "public", "key", "producing", "decrypted", "result", "decrypted", "result", "decoded", "identifier", "compared", "stored", "configuration", "data", "alternatively", "stored", "configuration", "data", "encoded", "identifier", "compared", "decrypted", "result"], "section": [6], "subsection": [112, 111], "group": [558, 569], "subgroup": [7042, 7148, 7057], "labels": [6, 121, 120, 695, 706, 7840, 7946, 7855]}
{"id": "5983632", "title": ["exhaust", "emission", "control", "apparatus", "general-purpose", "internal", "combustion", "engine"], "abstract": ["exhaust", "emission", "control", "apparatus", "general-purpose", "internal", "combustion", "engine", "comprises", "exhaust", "passage", "allowing", "passage", "exhaust", "gas", "therethrough", "ternary", "catalyst", "air", "pump", "supplying", "secondary", "air", "exhaust", "passage", "air", "pump", "driven", "rotation", "camshaft", "cam", "opening", "closing", "exhaust", "intake", "valve", "internal", "combustion", "engine", "drive", "air", "pump", "effected", "pump", "rocker", "arm", "disposed", "cam", "pump", "shaft", "air", "pump"], "section": [8, 5], "subsection": [125, 88], "group": [421, 656], "subgroup": [8095, 5369], "labels": [8, 5, 134, 97, 558, 793, 8893, 6167]}
{"id": "5983681", "title": ["lock", "device", "automatic", "shift", "lever"], "abstract": ["improved", "lock", "device", "automatic", "shift", "lever", "car", "lock", "device", "ha", "theft-proof", "effect", "broken", "limiting", "limiting", "rod", "receiving", "hole", "knob", "rear", "front", "hole", "provided", "protruding", "portion", "front", "end", "operating", "rod", "position", "position", "periphery", "end", "push", "button", "receive", "limiting", "rod", "surrounded", "spring", "push", "button", "pressed", "released", "end", "limiting", "rod", "abuts", "plateform", "receiving", "hole", "end", "freely", "slide", "fro", "rear", "front", "hole", "locking", "lever", "lock", "rotated", "render", "stop", "piece", "provided", "push", "button", "protruding", "portion", "rotate", "position", "rear", "front", "hole", "limit", "reduce", "stroke", "limiting", "rod", "range", "plateform", "stop", "piece", "object", "locking", "attained"], "section": [8, 1], "subsection": [127, 41], "group": [202, 660], "subgroup": [8360, 2534], "labels": [8, 1, 136, 50, 339, 797, 9158, 3332]}
{"id": "5983841", "title": ["heat", "exchanger"], "abstract": ["heat", "exchanger", "shape", "pot", "frontal", "connector", "burner", "lateral", "water", "inlet", "base", "water", "outlet", "region", "frontal", "connector", "water", "flow", "base", "jacket", "pot", "operation", "invention", "proposes", "provision", "base", "pot", "water", "conveying", "section", "form", "sickle-shaped", "water", "guide", "channel", "barrier", "ensure", "directional", "water", "flow", "substantially", "covering", "surface", "base", "pot", "order", "ensure", "uniform", "temperature", "distribution", "pot", "base", "formation", "steam", "bubble"], "section": [5], "subsection": [99], "group": [490], "subgroup": [6268, 6276], "labels": [5, 108, 627, 7066, 7074]}
{"id": "5983891", "title": ["artificial", "ventilation", "method", "controlling", "carbon", "dioxide", "rebreathing"], "abstract": ["method", "providing", "assisted", "ventilation", "avoids", "hypoxia", "hypocapnia", "disclosed", "predetermined", "dead", "space", "assisted", "ventilation", "system", "provided", "external", "patient", "method", "create", "normocapnia", "moderate", "hypercapnia", "causing", "hypoxia", "assisted", "ventilation", "preferably", "hypoxia", "avoided", "inducing", "maintaining", "arterial", "carbon", "dioxide", "tension", "mmhg", "dead", "space", "volume", "small", "ml", "exceeding", "ml", "utilized", "method", "improved", "proximal", "terminal", "tubular", "attachment", "coaxial", "filter", "disclosed", "safer", "le", "expensive", "prior", "art", "unilimb", "assisted", "ventilation", "system", "device", "present", "invention", "reduce", "medical", "waste", "comparison", "prior", "art", "assisted", "ventilation", "system", "interface", "provided", "incorporates", "proximal", "terminal", "functional", "device", "tubular", "respiratory", "conduit", "predetermined", "adjustable", "dead", "space", "volume", "connected"], "section": [8, 0], "subsection": [12, 127], "group": [70, 659], "subgroup": [8299, 8124, 877, 893], "labels": [8, 0, 21, 136, 207, 796, 9097, 8922, 1675, 1691]}
{"id": "5984022", "title": ["automatic", "shaft", "lock"], "abstract": ["automatic", "shaft", "lock", "incorporated", "transmission", "drive", "component", "power", "driving", "tool", "type", "commonly", "tighten", "loosen", "threaded", "fastener", "automatic", "shaft", "lock", "operates", "prevent", "externally-applied", "rotational", "back-force", "back-torque", "result", "tool", "manually", "tighten", "loosen", "fastener", "transmitted", "drive", "component", "tool", "motor", "armature", "shaft", "shaft", "lock", "effectively", "reduces", "amount", "back-torque", "functioning", "automatically", "rotational", "direction", "due", "disposed", "intermediate", "location", "drive", "train", "intermediate", "gear", "enmeshed", "driving", "rotation", "tool", "armature", "shaft", "output", "gear", "enmeshed", "driving", "relationship", "tool", "output", "shaft"], "section": [1], "subsection": [28], "group": [133, 130], "subgroup": [1768, 1800], "labels": [1, 37, 270, 267, 2566, 2598]}
{"id": "5984065", "title": ["lockup", "damper", "torque", "converter"], "abstract": ["lockup", "damper", "ha", "drive", "plate", "driven", "plate", "coil", "spring", "disposed", "plate", "coil", "spring", "disposed", "plate", "coil", "spring", "intermediate", "plate", "support", "portion", "intermediate", "limit", "portion", "intermediate", "support", "portion", "disposed", "coil", "spring", "supporting", "spring", "circumferential", "direction", "intermediate", "limit", "portion", "extend", "interior", "coil", "spring", "intermediate", "support", "portion", "limiting", "radially", "outward", "movement", "coil", "spring"], "section": [5], "subsection": [94], "group": [452], "subgroup": [5870, 5893], "labels": [5, 103, 589, 6668, 6691]}
{"id": "5984123", "title": ["container", "screw-threaded", "captive", "cap"], "abstract": ["packaging", "container", "container", "body", "lid", "unit", "undetachably", "mounted", "container", "body", "container", "body", "ha", "neck", "portion", "provided", "opening", "external", "thread", "cut", "outer", "periphery", "neck", "portion", "lid", "mounting", "portion", "provided", "external", "thread", "lid", "unit", "ha", "lid", "body", "fitting", "member", "lid", "body", "provided", "internal", "thread", "engageable", "external", "thread", "container", "body", "ha", "function", "hermetically", "sealing", "opening", "container", "body", "fitting", "member", "rotatably", "fitted", "lid", "mounting", "portion", "container", "body", "vertical", "movement", "fitting", "member", "restricted", "predetermined", "range", "fitting", "member", "held", "undetachable", "lid", "mounting", "portion", "collar", "container", "body", "lid", "body", "fitting", "member", "connected", "connecting", "member", "manner", "lower", "surface", "lid", "body", "rest", "separate", "upper", "surface", "fitting", "member"], "section": [1], "subsection": [46], "group": [237], "subgroup": [3021], "labels": [1, 55, 374, 3819]}
{"id": "5984498", "title": ["device", "controller", "intracontroller", "communication", "capability", "conveying", "system", "controller", "controlling", "conveying", "section", "method", "related", "thereto"], "abstract": ["featured", "device", "controller", "system", "multiplicity", "controller", "conveying", "system", "method", "controlling", "multiplicity", "device", "controller", "controller", "includes", "plurality", "bi-directional", "communication", "port", "processor", "process", "information", "output", "output", "control", "device", "application", "program", "execution", "processor", "includes", "instruction", "criterion", "processing", "information", "providing", "processor", "output", "specifically", "application", "program", "includes", "instruction", "criterion", "communicating", "information", "controller", "instruction", "criterion", "processing", "information", "received", "controller", "instruction", "criterion", "modifying", "operation", "device", "responsive", "communicated", "information", "conveying", "system", "multiplicity", "conveying", "section", "controller", "provided", "section", "preferably", "application", "program", "conveying", "system", "controller", "includes", "instruction", "criterion", "needed", "operate", "number", "conveying", "section", "type", "conveying", "system", "controller", "includes", "memory", "storing", "parameter", "conveying", "system", "section", "operates", "desired", "fashion"], "section": [6, 8], "subsection": [110, 127], "group": [660, 551], "subgroup": [6994, 8347, 6992], "labels": [6, 8, 119, 136, 797, 688, 7792, 9145, 7790]}
{"id": "5984799", "title": ["golf", "club", "swing", "training", "device"], "abstract": ["invention", "soft", "tiny", "golf", "club-shaft", "attachable", "audio", "feel-feedback", "golf", "swing", "tuner", "oz", "weight", "golfer", "swing", "club", "tuner", "soft", "inch", "long", "ulta-thin", "tensilised", "polymeric", "foil", "untwisted", "elevated", "lengthwise", "parallel", "target", "side", "shaft", "twin", "resilient", "plastic", "end-piers", "snap-fitted", "club", "head", "end", "shaft", "foil", "resonates", "keeping", "pace", "club-face", "motion", "golfer", "hears", "motion", "specific", "", "", "", "humming", "buzzing", "clubshaft", "quivering", "signal", "repeat", "swing", "repeat"], "section": [0], "subsection": [14], "group": [77], "subgroup": [1028], "labels": [0, 23, 214, 1826]}
{"id": "5985308", "title": ["process", "producing", "anti-microbial", "effect", "complex", "silver", "ion"], "abstract": ["production", "anti-microbial", "effect", "alcohol", "water", "based", "electrolyte", "achieved", "preparing", "silver", "material", "form", "complex", "ion", "ag", "", "ag", "", "ag", "", "produce", "anti-microbial", "effect", "greater", "produced", "equivalent", "amount", "silver", "ag", "", "exemplary", "complex", "silver", "ion", "produced", "include", "ag", "cn", "-", "agcn", "", "aq", "ion", "pair", "ag", "nh", "", "agcl", "-", "ag", "-", "ag", "-", "ag", "-", "ag", "-", "silver", "material", "prepared", "powder", "solution", "suspension", "complex", "silver", "ion", "silver", "material", "prepared", "coating", "foil", "powder", "fine", "grain", "nanocrystalline", "powder", "formed", "atomic", "disorder", "provide", "sustained", "release", "complex", "silver", "ion"], "section": [2, 8, 0, 7], "subsection": [0, 120, 68, 12, 127], "group": [659, 10, 334, 69, 604, 61], "subgroup": [705, 861, 198, 870, 867, 857, 7468, 4548, 869, 8337], "labels": [2, 8, 0, 7, 9, 129, 77, 21, 136, 796, 147, 471, 206, 741, 198, 1503, 1659, 996, 1668, 1665, 1655, 8266, 5346, 1667, 9135]}
{"id": "5985425", "title": ["ink-jet", "recording", "film", "improved", "ink", "fixing", "comprising", "combination", "silica", "powder"], "abstract": ["ink-jet", "recording", "film", "capable", "exhibiting", "excellent", "ink", "fixing", "behavior", "ink-jet", "printing", "water-base", "ink", "good", "water", "resistance", "recording", "layer", "ha", "double-layered", "structure", "formed", "surface", "plastic", "substrate", "film", "consisting", "ink-receptive", "layer", "comprising", "water-soluble", "resin", "polyvinyl", "alcohol", "polyvinyl", "acetal", "polyvinyl", "pyrrolidone", "surface-roughening", "agent", "combination", "silica", "powder", "distinguishable", "low", "high", "oil", "absorption", "weight", "proportion", "crosslinking", "agent", "water-soluble", "resin", "overcoating", "layer", "dot-profile", "control", "consisting", "acrylic", "resin", "quaternary", "ammonium", "salt", "type"], "section": [8, 1], "subsection": [127, 37], "group": [660, 174], "subgroup": [8354, 2272], "labels": [8, 1, 136, 46, 797, 311, 9152, 3070]}
{"id": "5985888", "title": ["camptothecin", "compound", "combined", "topoisomarase", "inhibition", "dna", "alkylation", "property"], "abstract": ["camptothecin", "compound", "--", "ch", "--", "group", "effective", "anti-tumor", "compound", "compound", "inhibit", "enzyme", "topoisomerase", "dna", "topoisomerase", "i-dna", "complex"], "section": [2], "subsection": [58], "group": [277], "subgroup": [3653], "labels": [2, 67, 414, 4451]}
{"id": "5985966", "title": ["aqueous", "emulsion", "fluorine-containing", "polymer"], "abstract": ["aqueous", "emulsion", "fluorine-containing", "polymer", "present", "invention", "emulsion", "stabilizer", "represented", "formula", "equ", "--", "ph", "--", "--", "ch", "ch", "--", "ch", "ch", "--", "ph", "phenyl", "radical", "alkyl", "radical", "carbon", "atom", "number", "na", "nh", "resulting", "emulsion", "ha", "excellent", "mechanical", "stability", "thermal", "stability", "decreased", "possibility", "causing", "ground", "water", "contamination"], "section": [2], "subsection": [60, 59], "group": [293, 289, 290], "subgroup": [3964, 3942, 4050, 3965], "labels": [2, 69, 68, 430, 426, 427, 4762, 4740, 4848, 4763]}
{"id": "5986042", "title": ["cross-linked", "polymer"], "abstract": ["cross-linked", "polymer", "molecule", "recurring", "unit", "represented", "formula", "biodegradability", "high", "water-absorbency", "pendant", "group", "functional", "group", "selected", "group", "consisting", "acidic", "group", "salt", "thereof", "glycino", "group", "salt", "thereof", "cationic", "group", "betaine", "group", "nh", "nr", "", "", "alkyl", "aralkyl", "aryl", "group"], "section": [2], "subsection": [59], "group": [286], "subgroup": [3856, 3854], "labels": [2, 68, 423, 4654, 4652]}
{"id": "5986058", "title": ["polynucleotide", "encoding", "growth", "differentiation", "protein", "encoded"], "abstract": ["growth", "differentiation", "polypeptide", "polynucleotide", "sequence", "provided"], "section": [2, 0], "subsection": [58, 12], "group": [282, 68], "subgroup": [843, 3713], "labels": [2, 0, 67, 21, 419, 205, 1641, 4511]}
{"id": "5986166", "title": ["absorbent", "product", "including", "absorbent", "layer", "treated", "surface", "active", "agent"], "abstract": ["absorbent", "product", "comprising", "liquid", "permeable", "surface", "sheet", "liquid", "nonpermeable", "back", "sheet", "absorbent", "layer", "located", "therebetween", "absorbent", "layer", "comprises", "water", "nonswellable", "synthetic", "fiber", "optionally", "cellulose", "fiber", "water-absorbent", "resin", "weight", "ratio", "percentage", "content", "based", "weight", "sum", "weight", "absorbent", "layer", "treated", "polyoxyalkylene-modified", "silicone", "surface", "active", "agent", "nonsilicone", "surface", "active", "agent", "hlb", "absorbent", "product", "present", "invention", "exhibit", "excellent", "shape", "retention", "moist", "state", "good", "permeability", "diffusibility", "absorbed", "liquid", "provide", "excellent", "surface", "dryness", "reduced", "leakage", "comfortably", "long", "time", "effectively", "applied", "disposable", "diaper", "sanitary", "napkin", "incontinence", "pad"], "section": [2, 0, 1], "subsection": [12, 60, 35], "group": [69, 64, 298, 164], "subgroup": [2123, 4160, 856, 751, 2131, 2197, 2179, 2188], "labels": [2, 0, 1, 21, 69, 44, 206, 201, 435, 301, 2921, 4958, 1654, 1549, 2929, 2995, 2977, 2986]}
{"id": "5986341", "title": ["semiconductor", "device"], "abstract": ["condenser", "coil", "thin-thickness", "integrated", "circuit", "upper", "cover", "sheet", "lower", "cover", "sheet", "adhesive", "filled", "space", "card", "fabricated", "condenser", "coil", "thin-thickness", "integrated", "circuit", "extremely", "thin", "resulting", "semiconductor", "device", "highly", "resistant", "bending", "highly", "reliable", "low", "cost"], "section": [6, 7], "subsection": [120, 111], "group": [607, 561], "subgroup": [7560, 7550, 7555, 7071, 7554], "labels": [6, 7, 129, 120, 744, 698, 8358, 8348, 8353, 7869, 8352]}
{"id": "5986400", "title": ["electroluminescent", "device", "comprising", "transparent", "structured", "electrode", "layer", "made", "conductive", "polymer"], "abstract": ["description", "electroluminescent", "el", "device", "composed", "polymeric", "led", "comprising", "active", "layer", "conjugated", "polymer", "transparent", "polymeric", "electrode", "layer", "electroconductive", "area", "electrode", "active", "layer", "electrode", "layer", "manufactured", "simple", "manner", "spin", "coating", "electrode", "layer", "structured", "conductive", "electrode", "exposure", "uv", "light", "electrode", "jointly", "form", "matrix", "led", "display", "flexible", "substrate", "bendable", "el", "device", "obtained"], "section": [7], "subsection": [120], "group": [607], "subgroup": [7572, 7557], "labels": [7, 129, 744, 8370, 8355]}
{"id": "5986457", "title": ["method", "measuring", "currency", "limpness"], "abstract": ["measuring", "limpness", "note", "separate", "worn", "note", "circulation", "method", "disclosed", "combination", "test", "limpness", "method", "measure", "note", "ability", "reflect", "light", "transmit", "light", "method", "measure", "response", "note", "acoustic", "wave", "method", "measure", "note", "deflection", "pressure", "force", "method", "measure", "dielectric", "note", "plate", "capacitor", "final", "method", "involves", "measuring", "thermal", "conductivity", "note", "case", "limp", "note", "produce", "distinguishable", "result", "stiff", "note"], "section": [6], "subsection": [106, 112], "group": [568, 528], "subgroup": [6726, 6744, 6738, 7139, 6742], "labels": [6, 115, 121, 705, 665, 7524, 7542, 7536, 7937, 7540]}
{"id": "5986510", "title": ["method", "apparatus", "amplifying", "input", "signal", "multiple", "mode", "resolution"], "abstract": ["output", "array", "input", "signal", "amplified", "amplification", "section", "sampled", "multiplexed", "analog", "bus", "amplifier", "amplification", "section", "segregated", "group", "amplifier", "mode", "binning", "signal", "amplifier", "group", "electrically", "isolated", "function", "independently", "provide", "high", "resolution", "output", "signal", "mode", "amplifier", "group", "operate", "single", "unified", "amplifier", "average", "input", "group", "provide", "single", "output", "mode", "operation", "readout", "speed", "improved", "increasing", "signal-to-noise", "ratio", "input", "signal", "relative", "mode", "operation"], "section": [7], "subsection": [123], "group": [639], "subgroup": [7949], "labels": [7, 132, 776, 8747]}
{"id": "5986538", "title": ["n-bit", "comparator"], "abstract": ["n-bit", "comparator", "compare", "number", "consisting", "bit", "includes", "one-bit", "comparing", "circuit", "generating", "output", "level", "output", "level", "complementary", "level", "bit", "ai", "ltoreq", "ltoreq", "number", "equal", "bit", "bi", "ltoreq", "ltoreq", "number", "generating", "output", "level", "output", "level", "bit", "ai", "greater", "bit", "bi", "generating", "output", "level", "output", "level", "bit", "ai", "le", "bit", "bi", "final", "comparing", "circuit", "receiving", "output", "one-bit", "comparing", "circuit", "generating", "final", "comparative", "result", "number", "comparative", "result", "lower", "place", "upper", "place", "number", "equal"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7060], "labels": [6, 120, 695, 7858]}
{"id": "5986553", "title": ["flow", "meter", "measure", "solid", "particulate", "flow"], "abstract": ["non-contact", "solid", "flow", "meter", "measuring", "solid", "particulate", "flow", "comprised", "flow", "tube", "sensor", "indicator", "product", "enters", "flow", "tube", "end", "flow", "downward", "gravity", "past", "sensor", "exit", "flow", "tube", "bottom", "sensor", "sensor", "tube", "angle", "flow", "particulate", "solid", "product", "pas", "sensor", "signal", "low", "microwave", "energy", "energy", "contacting", "particulate", "undergoes", "doppler", "shift", "detected", "sensor", "width", "sensor", "beam", "ha", "diameter", "flow", "tube", "cover", "entire", "cross-sectional", "area", "flow", "tube", "manner", "particulate", "material", "flowing", "flow", "tube", "contact", "beam", "reflected", "instrument", "calibrated", "algorithm", "determined", "calibration", "indicator", "provide", "fit", "function", "output", "range", "indicator"], "section": [6], "subsection": [106], "group": [521], "subgroup": [6624], "labels": [6, 115, 658, 7422]}
{"id": "5986619", "title": ["multi-band", "concentric", "helical", "antenna"], "abstract": ["multi-band", "concentric", "helical", "antenna", "operating", "conical", "mode", "general", "satellite", "communication", "disclosed", "higher", "frequency", "helix", "concentrically", "inside", "lower", "frequency", "embodiment", "helix", "ha", "helical", "element", "outer", "helix", "fed", "frequency", "helix", "fed", "frequency", "frequency", "greater", "frequency", "helix", "polarization", "pitch", "diameter", "length", "al", "al", "helix", "chosen", "antenna", "radiates", "approximately", "equal", "flux", "point", "far-field", "plane", "alternatively", "helix", "concentrically", "outer", "helix", "space", "application", "helix", "air", "wound", "spring", "compressed", "flat", "prior", "launch", "deployed", "fall", "length", "flight", "embodiment", "feature", "helically-wound", "tape", "wound", "inflatable", "non-conducting", "support", "concentrically", "positioned", "deployed", "space", "form", "concentric", "helix"], "section": [8, 7], "subsection": [123, 120, 127], "group": [610, 659, 633], "subgroup": [7869, 7596, 8218, 7595], "labels": [8, 7, 132, 129, 136, 747, 796, 770, 8667, 8394, 9016, 8393]}
{"id": "5986654", "title": ["system", "method", "rendering", "on-screen", "iconic", "button", "dynamic", "textual", "link"], "abstract": ["display", "button", "web", "page", "integrating", "graphic", "pictorial", "image", "character", "based", "textual", "information", "link", "single", "iconic", "button", "providing", "graphic", "image", "display", "button", "present", "invention", "advantage", "graphic", "icon", "speed", "location", "user", "recognition", "increased", "meaning", "providing", "character", "based", "dynamic", "textual", "link", "present", "invention", "iconic", "button", "information", "readily", "translated", "language", "italian", "english", "french", "german", "requiring", "image", "redrawn", "complex", "time", "consuming", "artist", "drawing", "tool", "translation", "accomplished", "automatic", "word", "phrase", "conversion", "preferably", "display", "button", "present", "invention", "represented", "table", "structure", "html", "table", "structure", "end", "cell", "display", "graphic", "image", "slightly", "shorter", "text", "cell", "inserted", "display", "character", "based", "text", "filling", "height", "difference", "text", "cell", "end", "cell", "thin", "horizontal", "row", "cell", "colored", "mach", "end", "cell", "background", "color", "cell", "selected", "create", "visual", "image", "complete", "display", "button", "graphic", "image", "textual", "information", "display", "button", "selected", "user", "obtain", "display", "information", "advance", "web", "page", "website", "link", "present", "invention", "subroutine", "structure", "created", "language", "called", "javascript", "reducing", "amount", "program", "code", "required", "generate", "multiple", "display", "button", "single", "web", "page"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7058], "labels": [6, 120, 695, 7856]}
{"id": "5987000", "title": ["disc", "package"], "abstract": ["disc", "package", "loaded", "disc", "device", "house", "plurality", "tray", "disc", "type", "installed", "respective", "tray", "tray", "provided", "hook", "identification", "hole", "indicative", "type", "information", "disc", "ejector", "lever", "ejecting", "tray", "provided", "sensor", "sensing", "information", "identification", "hole", "disc", "package", "loaded", "identification", "disc", "tray", "causing", "ejector", "lever", "face", "sequentially", "hook", "tray"], "section": [6], "subsection": [116], "group": [587], "subgroup": [7292, 7283], "labels": [6, 125, 724, 8090, 8081]}
{"id": "5987041", "title": ["laser", "apparatus", "method", "emission", "laser", "beam"], "abstract": ["laser", "apparatus", "capable", "emitting", "laser", "beam", "wavelength", "conversion", "intensity", "modulation", "comprises", "fundamental", "wave", "resonance", "comprising", "light", "emitting", "part", "optical", "resonator", "comprising", "mirror", "sandwiching", "light", "emitting", "part", "capable", "laser", "resonating", "modulation-conversion", "set", "inside", "optical", "resonator", "light", "emitting", "part", "semiconductor", "light", "emitting", "element", "laser", "medium", "modulation-conversion", "converting", "nonlinear", "optical", "effect", "fundamental", "laser", "resonance", "wavelength", "light", "phase", "modulating", "light", "electro-optical", "effect", "modulation", "part", "modulation-conversion", "comprising", "electrode", "application", "modulation", "voltage", "laser", "apparatus", "present", "invention", "compact", "ha", "simple", "structure", "compared", "conventional", "capable", "wavelength", "conversion", "fundamental", "wave", "beam", "shg", "intensity", "modulation", "shg", "laser", "beam", "high", "modulation", "degree", "low", "modulation", "voltage", "emission", "light", "method", "thereof", "simple", "fulfill", "laser", "apparatus", "serf", "light", "source", "optical", "communication"], "section": [6, 7], "subsection": [120, 107], "group": [612, 538], "subgroup": [7634, 6848], "labels": [6, 7, 129, 116, 749, 675, 8432, 7646]}
{"id": "5987687", "title": ["handle", "bristle", "holding", "portion", "brush"], "abstract": ["handle", "bristle", "holding", "portion", "brush", "handle", "ergonomically", "shaped", "fit", "user", "hand", "handle", "configured", "longitudinal", "cylinder", "resilient", "increase", "user", "comfort", "handle", "sanitized", "brush", "client", "hook", "loop", "fastener", "connect", "handle", "bristle", "holding", "portion", "handle", "bristle", "holding", "portion", "readily", "separable", "rejoinable", "allowing", "handle", "readily", "transferable", "bristle", "holding", "portion", "alternately", "handle", "fixedly", "formed", "bristle", "holding", "portion"], "section": [0], "subsection": [10], "group": [50], "subgroup": [517], "labels": [0, 19, 187, 1315]}
{"id": "5987959", "title": ["automated", "retention", "time", "locking"], "abstract": ["invention", "method", "automated", "matching", "retention", "time", "obtained", "chromatographic", "method", "defined", "set", "column", "parameter", "operating", "parameter", "retention", "time", "obtained", "chromatographic", "method", "set", "column", "parameter", "retention", "time", "component", "separated", "accordance", "chromatographic", "method", "matched", "retention", "time", "set", "chromatographic", "method", "procedure", "adjust", "head", "pressure", "compensate", "difference", "versus", "original", "column", "carrier", "gas", "column", "outlet", "pressure", "method"], "section": [6], "subsection": [106], "group": [528], "subgroup": [6746], "labels": [6, 115, 665, 7544]}
{"id": "5987983", "title": ["method", "apparatus", "measuring", "acceleration"], "abstract": ["method", "apparatus", "measuring", "acceleration", "moving", "object", "body", "capable", "transmitting", "pulse", "energy", "applied", "moving", "object", "carried", "move", "therewith", "pulse", "energy", "transmitted", "forward", "direction", "location", "body", "location", "body", "distance", "location", "transmitted", "pulse", "detected", "location", "transit", "time", "pulse", "location", "location", "measured", "measured", "transit", "time", "distance", "location", "utilized", "determine", "acceleration", "body", "moving", "object"], "section": [6], "subsection": [106], "group": [529], "subgroup": [6756], "labels": [6, 115, 666, 7554]}
{"id": "5987995", "title": ["fiber", "optic", "pressure", "catheter"], "abstract": ["fiber", "optic", "pressure", "catheter", "includes", "light", "source", "optical", "fiber", "coupled", "receive", "light", "light", "source", "sensor", "head", "optically", "coupled", "optical", "fiber", "sensor", "head", "ha", "housing", "defining", "chamber", "coupled", "end", "optical", "fiber", "opposite", "light", "source", "housing", "ha", "opening", "enclosed", "membrane", "membrane", "responsive", "pressure", "differential", "chamber", "sensor", "head", "resilient", "ribbon", "coupled", "chamber", "ha", "end", "fixedly", "coupled", "support", "ribbon", "ha", "end", "movable", "front", "optical", "fiber", "ribbon", "mounted", "middle", "portion", "ribbon", "touch", "membrane", "biased", "membrane", "response", "pressure", "differential", "amount", "light", "reflected", "back", "optical", "fiber", "based", "amount", "pressure", "membrane", "detection", "system", "optically", "coupled", "optical", "fiber", "determines", "pressure", "sensor", "head", "contrast", "spectral", "fringe", "light", "created", "optical", "coating", "end", "optical", "fiber", "light", "reflecting", "ribbon"], "section": [6, 0], "subsection": [106, 12], "group": [526, 61], "subgroup": [722, 6694], "labels": [6, 0, 115, 21, 663, 198, 1520, 7492]}
{"id": "5988352", "title": ["device", "turning", "editorial", "product", "packaging", "line"], "abstract": ["device", "turning", "editorial", "product", "packaging", "line", "includes", "pusher", "conveyor", "feeder", "product", "packaged", "plurality", "feeder", "sheet", "insert", "product", "arranged", "side", "side", "direction", "essentially", "perpendicular", "pusher", "conveyor", "device", "ha", "base", "mounted", "unit", "gripping", "rotating", "overturning", "degree", "guiding", "product", "caused", "advance", "pusher", "conveyor", "base", "ha", "size", "identical", "insert", "feeder", "assist", "position", "line", "drive", "provided", "unit"], "section": [1], "subsection": [46], "group": [240], "subgroup": [3100, 3104, 3092], "labels": [1, 55, 377, 3898, 3902, 3890]}
{"id": "5988759", "title": ["belt", "integral", "seat", "motor", "vehicle", "back", "rest", "neck", "rest", "device", "safety", "belt", "guidance"], "abstract": ["structure", "relates", "belt", "integral", "seat", "motor", "vehicle", "back", "rest", "ha", "back", "rest", "frame", "carrier", "neck", "rest", "device", "safety", "belt", "guidance", "arranged", "top", "device", "safety", "belt", "guidance", "attached", "carrier", "carrier", "located", "device", "safety", "belt", "guidance", "neck", "rest"], "section": [1], "subsection": [41], "group": [202, 199], "subgroup": [2531, 2500, 2528], "labels": [1, 50, 339, 336, 3329, 3298, 3326]}
{"id": "5988780", "title": ["guide", "withdrawal", "drawer"], "abstract": ["pull-out", "guide", "assembly", "includes", "support", "rail", "mounted", "article", "furniture", "pull-out", "rail", "mounted", "drawer", "intermediate", "rail", "positioned", "support", "rail", "pull-out", "rail", "driving", "roller", "mounted", "intermediate", "rail", "run", "running", "flange", "support", "rail", "pull-out", "rail", "locking", "device", "intermediate", "rail", "couple", "intermediate", "rail", "pull-out", "rail", "rear", "portion", "displacement", "movement", "pull-out", "rail", "article", "furniture", "closing", "device", "provided", "rail", "move", "intermediate", "rail", "pull-out", "rail", "coupled", "thereto", "locking", "device", "rearmost", "position", "clearance", "defined", "created", "driving", "roller", "running", "flange", "support", "rail", "prevent", "operation", "driving", "roller", "rear", "portion", "movement", "pull-out", "rail"], "section": [0], "subsection": [11], "group": [52], "subgroup": [541, 572], "labels": [0, 20, 189, 1339, 1370]}
{"id": "5988782", "title": ["ink-jet", "printing", "apparatus"], "abstract": ["ink-jet", "printing", "apparatus", "turning", "power", "source", "printing", "apparatus", "stirring", "operation", "ink", "main", "tank", "performed", "period", "time", "sequent", "printing", "operation", "stirring", "operation", "main", "tank", "performed", "give", "period", "predetermined", "elapsed", "time", "printing", "operation", "long", "period", "performed", "employing", "ink", "water", "insoluble", "dye", "causing", "problem", "admixing", "bubble", "caused", "stirring", "ink", "main", "tank"], "section": [3, 1], "subsection": [37, 77], "group": [364, 171], "subgroup": [4771, 2242, 2251], "labels": [3, 1, 46, 86, 501, 308, 5569, 3040, 3049]}
{"id": "5988807", "title": ["fluorescent", "valve", "jet", "ink"], "abstract": ["fluorescent", "ink", "make", "tagger", "mark", "valve", "jet", "printer", "rate", "envelope", "ink", "penetrates", "paper", "rapid", "rate", "dry", "time", "penetrating", "paper", "degrading", "print", "quality", "penetrating", "agent", "solvent", "system", "isopropyl", "alcohol", "combination", "surfactant", "surfactant", "polyethylene", "glycol", "ether", "polyethylene", "glycol", "ether", "high", "boiling", "point", "low", "vapor", "pressure", "penetrating", "agent", "solvent", "system", "ha", "low", "boiling", "point", "high", "vapor", "pressure", "low", "static", "dynamic", "surface", "tension", "improves", "ink", "rate", "penetration", "paper", "diminishes", "amount", "offset"], "section": [2], "subsection": [60], "group": [293], "subgroup": [4043], "labels": [2, 69, 430, 4841]}
{"id": "5988868", "title": ["drive", "member", "automatic", "paint", "stirring", "equipment"], "abstract": ["improvement", "automatic", "paint", "stirring", "equipment", "disclosed", "type", "rack", "adapted", "removably", "receive", "support", "plurality", "paint", "paint", "includes", "cover", "stirring", "element", "contained", "driven", "member", "positioned", "cover", "mechanically", "connected", "stirring", "element", "driven", "member", "rotatable", "predetermined", "axis", "includes", "upwardly", "extending", "pin", "spaced", "preset", "distance", "drive", "shaft", "rotatably", "mounted", "rack", "rotatably", "driven", "motor", "generally", "vertical", "axis", "drive", "member", "secured", "lower", "end", "shaft", "rotates", "unison", "shaft", "improved", "drive", "member", "includes", "outer", "leg", "central", "leg", "leg", "substantially", "planar", "outer", "leg", "intersect", "central", "leg", "obtuse", "angle", "outer", "leg", "substantially", "parallel", "central", "leg", "dimensioned", "intersection", "outer", "leg", "central", "leg", "spaced", "distance", "substantially", "equal", "distance", "pin", "driven", "member"], "section": [8, 1], "subsection": [127, 15], "group": [87, 659], "subgroup": [1179, 1191, 8226], "labels": [8, 1, 136, 24, 224, 796, 1977, 1989, 9024]}
{"id": "5988874", "title": ["black", "body", "reference", "rta"], "abstract": ["method", "calibrating", "optical", "pyrometer", "external", "reference", "point", "changing", "focus", "optical", "pyrometer", "physically", "moving", "pyrometer", "calibration", "optical", "pyrometer", "accomplished", "modifying", "semiconductor", "operation", "broadly", "speaking", "present", "invention", "contemplates", "apparatus", "calibrating", "optical", "pyrometer", "apparatus", "includes", "optical", "source", "heating", "chamber", "optical", "port", "optical", "pyrometer", "mirror", "optical", "source", "optical", "pyrometer", "positioned", "receive", "light", "ray", "optical", "source", "residing", "inside", "heating", "chamber", "optical", "source", "located", "external", "heating", "chamber", "optical", "source", "serf", "external", "reference", "point", "external", "location", "optical", "source", "calibration", "optical", "pyrometer", "modification", "heating", "chamber", "optical", "source", "residing", "inside", "heating", "chamber", "mirror", "positioned", "heating", "chamber", "optical", "pyrometer", "mirror", "situated", "permit", "optical", "pyrometer", "receive", "light", "ray", "optical", "source"], "section": [6], "subsection": [106], "group": [524], "subgroup": [6665], "labels": [6, 115, 661, 7463]}
{"id": "5988903", "title": ["printer", "printing", "single", "sheet", "endless", "paper", "strip"], "abstract": ["printer", "printing", "single", "sheet", "continuous", "paper", "strip", "printing", "substrate", "plane", "single", "sheet", "led", "printing", "station", "operator", "side", "displaced", "manually", "feed", "table", "printing", "station", "overlap", "continuous", "paper", "strip", "part", "width", "continuous", "paper", "strip", "fed", "printing", "station", "operating", "side", "continuous", "paper", "feed", "channel", "single-sheet", "feed", "channel", "assigned", "driven", "feed", "roller", "pair", "feed", "roller", "mating", "roller", "arranged", "rocker", "pressed", "optionally", "driven", "feed", "roller", "continuous", "paper", "feed", "channel", "single-sheet", "feed", "channel"], "section": [1], "subsection": [37], "group": [171], "subgroup": [2239, 2237], "labels": [1, 46, 308, 3037, 3035]}
{"id": "5989215", "title": ["fibrin", "delivery", "device", "method", "forming", "fibrin", "surface"], "abstract": ["invention", "medical", "device", "delivering", "volumetric", "quantity", "biochemically", "reactive", "fluid", "comprising", "container", "opening", "container", "adapted", "biochemically", "reactive", "fluid", "container", "fluid", "opening", "adjacent", "fluid", "opening", "container", "adapted", "biochemically", "reactive", "fluid", "spray", "unit", "separately", "atomizing", "biochemically", "reactive", "fluid", "aerosol", "energy", "source", "liquid", "energy", "mechanical", "energy", "vibration", "energy", "electric", "energy", "fluid", "pressurizer", "pressurizing", "biochemically", "reactive", "fluid", "delivery", "pressure", "spray", "unit", "surface", "biochemically", "reactive", "fluid", "mix", "surface"], "section": [0], "subsection": [12], "group": [69, 64], "subgroup": [867, 856, 767, 870], "labels": [0, 21, 206, 201, 1665, 1654, 1565, 1668]}
{"id": "5989806", "title": ["immunodissociation", "improving", "immunochemical", "determination", "analyte"], "abstract": ["present", "invention", "relates", "process", "immunochemical", "determination", "analytes", "sample", "immobilized", "specific", "receptor", "exhibit", "interactive", "bioaffinity", "analyte", "specific", "receptor", "likewise", "exhibit", "interactive", "bioaffinity", "analyte", "rule", "labeled", "process", "receptor", "posse", "specific", "binding", "site", "analyte", "added", "resulting", "immune", "complex", "partially", "dissociated", "reassociated", "subsequently", "detected", "embodiment", "receptor", "employed", "addition", "receptor", "receptor", "posse", "affinity", "immobilized", "solid", "phase", "resulting", "immune", "complex", "partially", "dissociated", "reassociated", "subsequently", "detected"], "section": [6, 8], "subsection": [106, 127], "group": [528, 659], "subgroup": [6728, 8261, 6748], "labels": [6, 8, 115, 136, 665, 796, 7526, 9059, 7546]}
{"id": "5990121", "title": ["-", "bridged", "-", "dihydropyridines", "medicament"], "abstract": ["present", "invention", "relates", "-", "bridged", "-", "dihydropyridines", "case", "general", "formula", "meaning", "description", "process", "preparation", "medicament", "selective", "potassium", "channel", "modulators", "treatment", "central", "nervous", "system"], "section": [2], "subsection": [58], "group": [277], "subgroup": [3643, 3647], "labels": [2, 67, 414, 4441, 4445]}
{"id": "5990137", "title": ["method", "inhibiting", "nadph", "oxidase"], "abstract": ["instant", "method", "employ", "pharmaceutical", "composition", "comprising", "aromatic", "azines", "imines", "formula", "selectively", "inhibit", "inflammation", "preventing", "oxidating", "burst", "phagocytic", "leukocyte", "caused", "nadph", "oxidase"], "section": [0], "subsection": [12], "group": [68], "subgroup": [839], "labels": [0, 21, 205, 1637]}
{"id": "5990638", "title": ["synchronizing", "method", "communication"], "abstract": ["cnc", "device", "servoamplifiers", "connected", "manner", "daisy-chain", "position", "servo", "motor", "detected", "pulse", "coder", "read", "synchronization", "point", "time", "circumstance", "synchronizing", "signal", "command", "read", "position", "propagated", "cnc", "device", "servoamplifiers", "transmission", "line", "propagation", "delay", "generated", "synchronization", "achieved", "correcting", "propagation", "delay", "time", "position", "servo", "motor", "detected", "point", "time"], "section": [6], "subsection": [110], "group": [551], "subgroup": [6994, 6992], "labels": [6, 119, 688, 7792, 7790]}
{"id": "5990751", "title": ["method", "apparatus", "improving", "power", "transfer", "efficiency", "amplifier", "system"], "abstract": ["linear", "amplifier", "output", "signal", "proportional", "input", "signal", "differential", "voltage", "control", "unit", "track", "output", "signal", "voltage", "control", "output", "pulse", "width", "modulators", "drive", "linear", "amplifier", "differential", "voltage", "control", "unit", "control", "output", "positive", "pulse", "width", "modulator", "fixed", "predetermined", "accordance", "input", "output", "signal", "positive", "negative", "pulse", "width", "modulators", "driven", "positive", "negative", "high", "voltage", "direct", "current", "power", "supply"], "section": [7], "subsection": [122], "group": [626], "subgroup": [7786], "labels": [7, 131, 763, 8584]}
{"id": "5991169", "title": ["arc", "welding", "power", "supply"], "abstract": ["dual", "stage", "power", "supply", "creating", "welding", "current", "arc", "welding", "gap", "power", "supply", "comprising", "input", "inverter", "stage", "full", "wave", "rectified", "voltage", "source", "output", "capacitor", "output", "chopper", "stage", "connected", "output", "capacitor", "chopper", "including", "output", "lead", "connected", "arc", "welding", "gap", "switch", "gating", "output", "current", "inverter", "stage", "controlled", "rate", "lead", "arc", "welding", "gap", "output", "inductor", "lead", "switch", "arc", "welding", "gap", "free", "wheeling", "diode", "lead", "switch", "output", "inductor"], "section": [8, 7, 1], "subsection": [26, 121, 125], "group": [619, 124, 655], "subgroup": [7718, 1687, 7716, 8092], "labels": [8, 7, 1, 35, 130, 134, 756, 261, 792, 8516, 2485, 8514, 8890]}
{"id": "5991610", "title": ["memory", "structure", "broadcast", "receiver", "providing", "traffic", "geographic", "information"], "abstract": ["invention", "relates", "broadcast", "receiver", "comprising", "control", "circuit", "applying", "encoded", "message", "derived", "broadcast", "signal", "storage", "device", "receiving", "control", "data", "derived", "encoded", "message", "storage", "device", "forming", "message", "control", "data", "form", "suitable", "display", "device", "speech", "synthesizer", "circuit", "order", "accelerate", "access", "control", "data", "reading", "device", "reading", "data", "external", "storage", "device", "storage", "device", "coupled", "control", "circuit", "storage", "device", "intended", "store", "region-specific", "control", "data", "storage", "device", "intended", "store", "traffic-specific", "control", "data"], "section": [6, 7], "subsection": [123, 113], "group": [573, 634], "subgroup": [7871, 7870, 7177], "labels": [6, 7, 132, 122, 710, 771, 8669, 8668, 7975]}
{"id": "5991706", "title": ["electronic", "measuring", "apparatus"], "abstract": ["electronic", "measuring", "apparatus", "plurality", "measuring", "mode", "plurality", "measuring", "mode", "selectively", "set", "perform", "operation", "electronic", "measuring", "apparatus", "includes", "plurality", "operational", "button", "information", "associate", "plurality", "operational", "button", "plurality", "measuring", "mode", "stored", "memory", "distinguished", "plurality", "operational", "button", "ha", "operated", "information", "stored", "memory", "associate", "distinguished", "plurality", "operational", "button", "plurality", "measuring", "mode", "searched", "operation", "unique", "plurality", "measuring", "mode", "distinguished", "plurality", "operational", "button", "performed", "electrical", "power", "supplied", "searching", "performing", "supplying", "start", "supplying", "electrical", "power", "portion", "electronic", "measuring", "apparatus", "distinguished", "plurality", "operational", "button", "ha", "manipulated", "searching", "performing", "operation", "occurs", "receiving", "electrical", "power", "finally", "stored", "information", "renewed", "memory"], "section": [6], "subsection": [106], "group": [519], "subgroup": [6598], "labels": [6, 115, 656, 7396]}
{"id": "5991731", "title": ["method", "system", "interactive", "prescription", "distribution", "prescription", "conducting", "clinical", "study"], "abstract": ["computer", "system", "method", "managing", "data", "conducting", "clinical", "study", "subject", "plurality", "participating", "geographically", "distributed", "clinical", "site", "participating", "clinical", "site", "computer", "inputting", "transmitting", "receiving", "data", "internet", "internet", "network", "server", "computer", "interfaced", "database", "host", "computer", "private", "network", "system", "communicates", "data", "internet", "determine", "patient", "eligibility", "randomization", "initial", "prescription", "adjusted", "physician", "online", "final", "prescription", "printed", "signature", "electronically", "distribution", "center", "study", "data", "maintained", "database", "host", "computer", "firewall", "provided", "internet", "server", "computer"], "section": [6], "subsection": [118, 111], "group": [558, 590, 564], "subgroup": [7327, 7039, 7096], "labels": [6, 127, 120, 695, 727, 701, 8125, 7837, 7894]}
{"id": "5991757", "title": ["method", "system", "searching", "array", "array"], "abstract": ["data", "processing", "system", "includes", "processor", "data", "storage", "array", "including", "record", "value-ordered", "entry", "find", "entry", "matching", "search", "number", "record", "searched", "set", "equal", "record", "assigned", "set", "set", "set", "includes", "record", "smallest", "power", "equal", "greater", "response", "determination", "search", "precedes", "record", "set", "binary", "search", "set", "record", "performed", "identify", "record", "including", "matching", "entry", "entry", "record", "set", "match", "search", "record", "set", "identified", "search", "entry", "record", "set", "selected", "record", "identified", "entry", "matching", "search", "equal", "equal", "reset", "equal", "number", "record", "set", "step", "repeated", "record", "matching", "entry", "identified", "identification", "search", "entry", "retrieved", "identified", "record", "content", "entry", "processed", "processor"], "section": [6, 8], "subsection": [127, 111], "group": [558, 659], "subgroup": [7062, 8319], "labels": [6, 8, 136, 120, 695, 796, 7860, 9117]}
{"id": "5991788", "title": ["method", "configuring", "fpga", "large", "ffts", "vector", "rotation", "computation"], "abstract": ["method", "replication", "distributed", "arithmetic", "logic", "circuit", "recursive", "interpolation", "reduced", "angular", "increment", "sine", "cosine", "sum", "constant", "logic", "look-up", "table", "permit", "computation", "vector", "rotation", "large", "ffts", "unitary", "field", "programmable", "gate", "array", "chip", "required", "off-chip", "memory", "storing", "constant"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7038], "labels": [6, 120, 695, 7836]}
{"id": "5992290", "title": ["aircraft", "interface", "device", "crossover", "cable", "kit"], "abstract": ["digital", "interface", "device", "conveys", "signal", "aircraft", "data", "bus", "wingtip", "weapon", "station", "interface", "provided", "coupling", "-", "aircraft", "instrumentation", "subsystem", "internal", "aisi", "input", "output", "connector", "interface", "coupled", "secondary", "armament", "bus", "crossover", "cable", "interconnects", "wingtip", "weapon", "station", "secondary", "armament", "bus", "digital", "data", "processing", "module", "coupled", "interface", "programmed", "convey", "signal", "aircraft", "data", "system", "coupled", "-", "aisi", "input", "output", "connector", "wingtip", "weapon", "station", "processing", "module", "monitor", "signal", "received", "input", "output", "connector", "extract", "signal", "addressed", "predetermined", "address", "module", "transmits", "reformatted", "signal", "wingtip", "weapon", "station", "minimum", "wiring", "change", "interface", "easily", "convert", "aircraft", "designed", "nose-mounted", "act", "pod", "act", "pod", "mounted", "wingtip", "station", "benefit", "processing", "module", "plug", "existing", "input", "output", "connector", "substitution", "nose-mounted", "act", "pod"], "section": [5], "subsection": [104], "group": [512], "subgroup": [6538], "labels": [5, 113, 649, 7336]}
{"id": "5992431", "title": ["device", "treating", "substrate", "fluid", "container"], "abstract": ["device", "treating", "substrate", "includes", "fluid", "container", "substrate", "contained", "treatment", "nozzle", "system", "connected", "sidewall", "bottom", "fluid", "container", "includes", "plurality", "nozzle", "introducing", "fluid", "fluid", "container"], "section": [8, 7, 1], "subsection": [22, 120, 127, 15], "group": [607, 103, 88, 659], "subgroup": [1207, 8126, 7546, 1199, 1375], "labels": [8, 7, 1, 31, 129, 136, 24, 744, 240, 225, 796, 2005, 8924, 8344, 1997, 2173]}
{"id": "5993101", "title": ["shaft", "coupling", "shaft", "coupling", "structure", "image", "forming", "apparatus"], "abstract": ["invention", "directed", "shaft", "coupling", "coupling", "shaft", "shaft", "shaft", "coupling", "includes", "outer", "ring", "encasing", "end", "shaft", "end", "shaft", "pin", "provided", "outer", "ring", "pin", "extending", "direction", "pin", "provided", "outer", "ring", "pin", "extending", "direction", "substantially", "orthogonal", "direction", "shaft", "pin", "set", "end", "shaft", "movable", "pin", "shaft", "pin", "set", "end", "shaft", "displaceable", "pin"], "section": [6, 8, 5], "subsection": [94, 127, 108], "group": [543, 660, 449], "subgroup": [8350, 6910, 5780, 5811], "labels": [6, 8, 5, 103, 136, 117, 680, 797, 586, 9148, 7708, 6578, 6609]}
{"id": "5993552", "title": ["processing", "apparatus"], "abstract": ["processing", "apparatus", "comprises", "resist", "coating", "machine", "coating", "resist", "surface", "substrate", "resist", "removing", "machine", "removing", "unnecessary", "resist", "stuck", "peripheral", "portion", "substrate", "carried", "resist", "coating", "machine", "transport", "arm", "transporting", "substrate", "resist", "coating", "machine", "resist", "removing", "machine", "resist", "removing", "machine", "comprises", "substrate", "table", "substrate", "brought", "transport", "arm", "nozzle", "spraying", "solvent", "peripheral", "portion", "remove", "unnecessary", "resist", "stuck", "peripheral", "portion", "substrate", "substrate", "table", "discharge", "machine", "discharging", "solvent", "dissolve", "remove", "unnecessary", "resist", "dissolved", "removed", "resist", "exhaust", "machine", "exhausting", "atmosphere", "substrate", "table", "downward"], "section": [6, 7], "subsection": [120, 108], "group": [607, 542], "subgroup": [6906, 7546], "labels": [6, 7, 129, 117, 744, 679, 7704, 8344]}
{"id": "5993645", "title": ["catalyst", "cracking", "oil", "feedstock", "contaminated", "metal"], "abstract": ["calcined", "cracking", "catalyst", "comprising", "zeolite", "crystal", "inorganic", "oxide", "matrix", "le", "na", "expressed", "cracking", "catalyst", "characterized", "exhibiting", "spectrum", "peak", "cm", "-", "treated", "pyridine", "analyzed", "ftir", "process", "manufacturing", "fcc", "catalyst", "characterized", "high", "tolerance", "contaminated", "metal", "comprises", "providing", "fluid", "cracking", "catalyst", "microspheres", "zeolite", "inorganic", "oxide", "matrix", "analyzing", "weight", "al", "analyzing", "le", "wt", "na", "impregnating", "catalyst", "solution", "phosphate", "phosphite", "salt", "amount", "microspheres", "analyze", "weight", "calcining", "microspheres", "absence", "steam", "temperature", "degree", "degree", "recovering", "product", "characterized", "exhibiting", "spectrum", "peak", "cm", "-", "intensity", "ratio", "peak", "cm", "-", "peak", "cm", "-", "greater", "treated", "pyridine", "analyzed", "ftir"], "section": [2, 1], "subsection": [61, 15], "group": [302, 88], "subgroup": [4189, 1209, 1216], "labels": [2, 1, 70, 24, 439, 225, 4987, 2007, 2014]}
{"id": "5993696", "title": ["electrically", "conductive", "thermoplastic", "elastomeric", "composition"], "abstract": ["invention", "comprises", "thermoplastic", "elastomer", "blend", "composed", "-", "thermoplastic", "elastomer", "component", "chosen", "styrene", "block", "copolymer", "type", "a-b-a", "stand", "polystyrene", "block", "stand", "soft", "elastic", "polymer", "block", "blend", "olefin", "homopolymer", "olefin", "copolymer", "thermoplastic", "crosslinked", "elastomer", "-", "inherently", "electrically", "conductive", "polymer", "component", "comprising", "polyaniline", "derivative", "ha", "doped", "protonic", "acid"], "section": [2, 7], "subsection": [120, 59], "group": [600, 290], "subgroup": [7369, 3991, 3964], "labels": [2, 7, 129, 68, 737, 427, 8167, 4789, 4762]}
{"id": "5993700", "title": ["aggregrates", "substituted", "helicene", "compound", "show", "enhanced", "optical", "rotatory", "power", "nonlinear", "optical", "response", "thereof"], "abstract": ["invention", "aggregate", "compound", "capable", "forming", "helical", "structure", "aggregate", "capable", "achieving", "specific", "rotation", "degree", "plane", "polarized", "light", "wavelength", "nm"], "section": [6, 2], "subsection": [58, 107], "group": [276, 538], "subgroup": [3553, 3567, 3499, 6846], "labels": [6, 2, 67, 116, 413, 675, 4351, 4365, 4297, 7644]}
{"id": "5993703", "title": ["process", "producing", "steel", "casting", "ladle", "monolithic", "refractory", "lining"], "abstract": ["wall", "bottom", "steel", "casting", "handling", "ladle", "provided", "time", "refractory", "monolithic", "lining", "lining", "lower", "area", "wall", "damaged", "intermediate", "repair", "bottom", "process", "wall", "bottom", "lined", "hose-like", "inflatable", "sealing", "body", "secured", "bottom", "part", "template", "beginning", "introduce", "casting", "mass", "wall", "area", "inflated", "seal", "template", "height", "corresponds", "desired", "thickness", "bottom", "casting", "mass", "lower", "wall", "area", "sufficiently", "set", "sealing", "body", "deflated", "removed", "refractory", "casting", "mass", "introduced", "bottom", "area", "desired", "height", "process", "suitable", "steel", "casting", "handling", "ladle", "similar", "metallurgical", "vessel"], "section": [1], "subsection": [25], "group": [116], "subgroup": [1539], "labels": [1, 34, 253, 2337]}
{"id": "5994055", "title": ["hiv", "trans-activator", "tat", "binding", "activation", "ctd", "phosphorylation"], "abstract": ["present", "invention", "relates", "method", "inhibiting", "tat", "trans-activation", "cell", "method", "assaying", "inhibitor", "tat", "trans-activation"], "section": [2, 0], "subsection": [63, 58, 12], "group": [319, 282, 68], "subgroup": [843, 4365, 3713], "labels": [2, 0, 72, 67, 21, 456, 419, 205, 1641, 5163, 4511]}
{"id": "5994118", "title": ["dna", "encoding", "phage", "resistance", "protein"], "abstract": ["protein", "amino", "acid", "gene", "isolated", "natural", "plasmid", "lactococcus", "lactis", "introduced", "dairy", "starter", "culture", "protein", "confers", "strong", "resistance", "bacteriophage", "infection"], "section": [2, 0], "subsection": [3, 63, 58], "group": [17, 319, 27, 282], "subgroup": [4348, 244, 308, 3713], "labels": [2, 0, 12, 72, 67, 154, 456, 164, 419, 5146, 1042, 1106, 4511]}
{"id": "5994199", "title": ["method", "fabricating", "semiconductor", "device", "soi", "substrate"], "abstract": ["semiconductor", "device", "includes", "plurality", "single", "crystal", "semiconductor", "island", "layer", "formed", "semiconductor", "substrate", "insulating", "layer", "intervened", "therebetween", "single", "crystal", "semiconductor", "island", "layer", "isolated", "insulating", "layer", "forming", "single", "crystal", "semiconductor", "island", "layer", "single", "crystal", "semiconductor", "layer", "formed", "selectively", "removed", "insulating", "layer", "insulating", "layer", "buried", "adjacent", "single", "crystal", "semiconductor", "island", "layer", "insulating", "layer", "formed", "entire", "surface", "inclusive", "single", "crystal", "semiconductor", "island", "layer", "surface", "portion", "insulating", "layer", "removed", "etching", "process", "polishing", "process", "non-element", "region", "buried", "insulating", "layer", "single", "crystal", "semiconductor", "island", "layer", "completely", "isolated", "substrate-related", "capacitance", "wiring", "region", "resistive", "part", "reduced"], "section": [7], "subsection": [120], "group": [607], "subgroup": [7546], "labels": [7, 129, 744, 8344]}
{"id": "5994422", "title": ["hot-curing", "rubber", "foam", "high", "structural", "strength"], "abstract": ["hot-curing", "foamable", "reactive", "composition", "based", "natural", "synthetic", "rubber", "olefinic", "double", "bond", "vulcanizing", "agent", "blowing", "agent", "high", "percentage", "content", "sulfur", "give", "foamed", "rubber", "composition", "exhibiting", "high", "structural", "strength", "high", "volume", "expansion", "composition", "suitable", "multifunctional", "filling", "material", "hollow", "structure", "hollow", "profile", "vehicle", "machine", "construction", "time", "perform", "sealing", "function", "damp", "acoustic", "vibration", "stiffen", "hollow", "structure", "considerable", "extent"], "section": [2, 1], "subsection": [41, 60, 59], "group": [202, 298, 288], "subgroup": [2519, 4160, 3936, 4155, 3881], "labels": [2, 1, 50, 69, 68, 339, 435, 425, 3317, 4958, 4734, 4953, 4679]}
{"id": "5995438", "title": ["synchronous", "semiconductor", "memory", "device"], "abstract": ["synchronous", "dynamic", "ram", "capable", "segmentally", "precharging", "memory", "bank", "sdram", "memory", "bank", "divided", "multiple", "memory", "block", "memory", "block", "internally", "ha", "row", "access", "circuitry", "performs", "independent", "precharging", "operation", "access", "memory", "bank", "cooperative", "externally", "precharge", "operation", "separately", "applied", "memory", "block", "allowing", "utilization", "row", "cache", "block", "sdram", "includes", "control", "device", "generating", "dedicated", "precharge", "signal", "memory", "block", "precharge", "signal", "memory", "bank", "dedicated", "precharge", "signal", "independently", "precharges", "memory", "block", "access", "operation", "executed", "memory", "block", "dedicated", "precharge", "signal", "succeeding", "activate", "signal", "activating", "memory", "block", "overlapped", "timing", "precharge", "sequence", "implanted", "succeeding", "activate", "signal", "data", "access", "time", "shortened"], "section": [6], "subsection": [116], "group": [588], "subgroup": [7320], "labels": [6, 125, 725, 8118]}
{"id": "5995535", "title": ["rapid", "time", "frequency", "acquistion", "spread", "spectrum", "waveform", "ambiguity", "transform"], "abstract": ["present", "invention", "method", "synchronizing", "digital", "receiver", "digital", "transmitter", "frequency", "time", "ambiguity", "transformation", "ambiguity", "transform", "combine", "time", "correlation", "spectrum", "synchronization", "integrated", "two-dimensional", "transform", "process", "ambiguity", "transform", "includes", "step", "multiplying", "reference", "sequence", "received", "signal", "create", "product", "signal", "calculating", "magnitude", "spectrum", "product", "signal", "determining", "peak", "product", "signal", "multiple", "iteration", "ambiguity", "transform", "time", "frequency", "shift", "digital", "receiver", "synchronized", "digital", "transmitter", "method", "present", "invention", "implemented", "digital", "signal", "processor", "dsp"], "section": [7], "subsection": [123], "group": [637], "subgroup": [7916, 7902], "labels": [7, 132, 774, 8714, 8700]}
{"id": "5995778", "title": ["apparatus", "method", "detecting", "toner", "density", "liquid", "developer"], "abstract": ["order", "detect", "toner", "density", "liquid", "developer", "accurately", "lowering", "influence", "ion", "liquid", "developer", "toner", "density", "detecting", "apparatus", "detects", "toner", "density", "liquid", "developer", "obtained", "mixing", "charged", "toner", "particle", "carrier", "solution", "electrode", "opposed", "liquid", "developer", "therebetween", "connected", "dc", "power", "source", "apply", "electrical", "field", "liquid", "developer", "toner", "density", "detecting", "apparatus", "includes", "fourth", "electrode", "opposed", "direction", "orthogonal", "approximately", "direction", "electrode", "opposed", "connected", "power", "source", "apply", "electrical", "field", "electrode", "divided", "plural", "sub-electrodes", "toner", "density", "detecting", "apparatus", "includes", "circuit", "detecting", "current", "sub-electrodes"], "section": [6], "subsection": [106, 108], "group": [543, 528], "subgroup": [6910, 6742], "labels": [6, 115, 117, 680, 665, 7708, 7540]}

================================================
FILE: data/Train_sample.json
================================================
{"id": "3930316", "title": ["sighting", "firearm"], "abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", "closed", "peephole", "peephole", "ha", "central", "orifice", "orifice", "peephole", "rear", "side", "ha", "larger", "diameter", "orifice", "peephole", "front", "sight", "side", "peephole", "pivotally", "mounted", "cooperates", "elastic", "member", "hold", "peephole", "tube-opening", "tube-closing", "position", "embodiment", "peephole", "provided", "end", "tube"], "section": [5], "subsection": [104], "group": [512], "subgroup": [6535], "labels": [5, 113, 649, 7333]}
{"id": "3930329", "title": ["bait", "molding", "device"], "abstract": ["bait", "molding", "device", "forming", "securing", "moldable", "bait", "material", "bread", "dough", "fishhook", "mold", "formed", "cup", "shaped", "mold", "section", "secured", "pliers-like", "device", "opening", "closing", "mold", "section", "mold", "elongate", "configuration", "accommodate", "entire", "fishhook", "moldable", "bait", "material", "surrounding", "fishhook", "mold", "section", "mold", "section", "includes", "groove", "edge", "mold", "permit", "fishing", "line", "attached", "hook", "pa", "mold", "closed"], "section": [0], "subsection": [0], "group": [7], "subgroup": [155], "labels": [0, 9, 144, 953]}
{"id": "3930333", "title": ["coupling", "member", "toy", "vehicle", "drive", "system"], "abstract": ["coupling", "member", "toy", "vehicle", "drive", "system", "employed", "play", "situation", "coupling", "member", "generally", "comprised", "exaggerated", "triangularly-shaped", "portion", "funnel-shaped", "portion", "exaggerated", "triangularly-shaped", "portion", "toy", "vehicle", "driven", "forward", "backward", "complete", "u-turn", "disengaged", "drive", "chain", "drive", "system", "funnel-shaped", "portion", "ensures", "toy", "vehicle", "engaged", "driven", "chain", "child", "desire", "drive", "toy", "vehicle", "forward", "direction"], "section": [0], "subsection": [14], "group": [82], "subgroup": [1090, 1086], "labels": [0, 23, 219, 1888, 1884]}
{"id": "3930351", "title": ["method", "apparatus", "transferring", "yarn", "package", "doffed", "textile", "machine", "container"], "abstract": ["present", "invention", "relates", "method", "apparatus", "transferring", "yarn", "package", "doffed", "textile", "machine", "provided", "conveyer", "belt", "disposed", "longitudinal", "direction", "thereof", "container", "yarn", "package", "carried", "end", "conveyer", "dropped", "container", "positioned", "receiving", "position", "end", "conveyer", "dropping", "distance", "end", "portion", "carrying", "surface", "conveyer", "surface", "receiving", "yarn", "package", "container", "maintained", "substantially", "predetermined", "distance", "larger", "width", "package", "smaller", "width", "package"], "section": [8, 1], "subsection": [127, 46], "group": [235, 659, 240], "subgroup": [8245, 2945, 3140, 3119], "labels": [8, 1, 136, 55, 372, 796, 377, 9043, 3743, 3938, 3917]}
{"id": "3930440", "title": ["device", "conveying", "rolled", "food"], "abstract": ["device", "conveying", "transferring", "rolled", "food", "semi-finished", "material", "chain", "procedural", "step", "step", "comb-shaped", "cradle", "secured", "stage", "processing", "device", "travelling", "comb-shaped", "cradle", "pa", "fixed", "cradle", "upwardly", "material", "fixed", "cradle", "moved", "travelling", "cradle", "move", "fixed", "cradle", "stage", "pa", "fixed", "cradle", "downwardly", "semi-finished", "material", "put", "fixed", "cradle", "stage"], "section": [0], "subsection": [1], "group": [12], "subgroup": [215], "labels": [0, 10, 149, 1013]}
{"id": "3930463", "title": ["vapor", "deposition", "apparatus", "including", "three-compartment", "evaporator"], "abstract": ["evaporation", "metal", "production", "alloy", "deposition", "component", "vapour", "phase", "carried", "controllably", "heated", "source", "comprising", "melting", "compartment", "operation", "metal", "melted", "mixing", "compartment", "constriction", "passage", "melting", "mixing", "compartment", "minimise", "back", "mixing", "molten", "metal", "evaporation", "compartment", "supply", "metal", "mixing", "compartment", "evaporation", "compartment", "surface", "molten", "metal", "heating", "preferably", "electron", "beam", "heating"], "section": [2], "subsection": [68], "group": [334], "subgroup": [4548], "labels": [2, 77, 471, 5346]}
{"id": "3930582", "title": ["system", "testing", "paper", "money"], "abstract": ["test", "genuineness", "condition", "dollar", "bill", "substantially", "identical", "paper", "thickness", "gauge", "positioned", "path", "paper", "determine", "deviation", "thickness", "passing", "specimen", "predetermined", "thickness", "reference", "specimen", "scanned", "concurrently", "therewith", "measured", "deviation", "fed", "processor", "count", "positive", "negative", "deviation", "multiplicity", "incremental", "period", "determines", "nature", "irregularity", "count", "deviation", "sign", "gauge", "measuring", "thickness", "parallel", "track", "system", "discriminate", "irregularity", "gap", "overlapping", "adhesive", "tape", "dog-eared", "corner"], "section": [6], "subsection": [112], "group": [568], "subgroup": [7139], "labels": [6, 121, 705, 7937]}
{"id": "3930737", "title": ["stud", "assembly"], "abstract": ["stud", "assembly", "produced", "holding", "fixed", "position", "head", "portion", "gripping", "surface", "extending", "base", "deformable", "washer", "extended", "base", "stud", "member", "provided", "receptacle", "end", "portion", "positioned", "respect", "base", "head", "interengaging", "cooperating", "surface", "receptacle", "base", "aligned", "provide", "locking", "aperture", "receiving", "washer", "finally", "washer", "deformed", "extends", "locking", "aperture", "locking", "stud", "member", "head", "forming", "unitary", "stud", "assembly"], "section": [8, 1], "subsection": [26, 127], "group": [660, 125], "subgroup": [1688, 8350], "labels": [8, 1, 35, 136, 797, 262, 2486, 9148]}
{"id": "3930764", "title": ["air", "tool", "overspeed", "shutoff", "device"], "abstract": ["overspeed", "shutoff", "device", "rotary", "pneumatic", "tool", "disclosed", "device", "operable", "shut", "air", "supply", "motor", "failure", "governor", "function", "properly", "preventing", "overspeeding", "motor", "device", "includes", "valve", "closing", "plate", "positioned", "path", "air", "flow", "pneumatic", "motor", "upstream", "inlet", "port", "passage", "air", "motor", "normal", "operation", "tool", "valve", "plate", "rotates", "motor", "drive", "shaft", "retained", "position", "spaced", "air", "inlet", "port", "locking", "mechanism", "engaging", "drive", "shaft", "tool", "prevent", "axial", "movement", "therealong", "plate", "locking", "device", "comprises", "cantilever", "mounted", "spring", "wire", "engagement", "groove", "drive", "shaft", "centrifugally", "responsive", "weight", "operably", "connected", "disengage", "wire", "groove", "response", "attainment", "predetermined", "rotary", "speed", "failure", "main", "governor", "tool", "consequent", "acceleration", "motor", "predetermined", "speed", "wire", "disengaged", "shaft", "groove", "air", "pressure", "drop", "valve", "inlet", "port", "closure", "plate", "move", "cover", "inlet", "port", "stopping", "flow", "air", "motor"], "section": [8, 5], "subsection": [127, 88], "group": [416, 660, 415], "subgroup": [5270, 8340, 5280], "labels": [8, 5, 136, 97, 553, 797, 552, 6068, 9138, 6078]}
{"id": "3930775", "title": ["testing", "correcting", "metering", "accuracy", "multihole", "spinnerets"], "abstract": ["method", "apparatus", "off-line", "testing", "correcting", "metering", "accuracy", "split", "multihole", "spinneret", "fed", "single", "metered", "stream", "determining", "end", "end", "variation", "flow
Download .txt
gitextract_iyvd7aib/

├── .github/
│   └── FUNDING.yml
├── .gitignore
├── .travis.yml
├── HARNN/
│   ├── test_harnn.py
│   ├── text_harnn.py
│   ├── train_harnn.py
│   └── visualization.py
├── LICENSE
├── README.md
├── Usage.md
├── data/
│   ├── Test_sample.json
│   ├── Train_sample.json
│   └── Validation_sample.json
└── utils/
    ├── checkmate.py
    ├── data_helpers.py
    └── param_parser.py
Download .txt
SYMBOL INDEX (34 symbols across 7 files)

FILE: HARNN/test_harnn.py
  function create_input_data (line 28) | def create_input_data(data: dict):
  function test_harnn (line 33) | def test_harnn():

FILE: HARNN/text_harnn.py
  class TextHARNN (line 7) | class TextHARNN(object):
    method __init__ (line 10) | def __init__(

FILE: HARNN/train_harnn.py
  function create_input_data (line 25) | def create_input_data(data: dict):
  function train_harnn (line 30) | def train_harnn():

FILE: HARNN/visualization.py
  function create_input_data (line 25) | def create_input_data(data: dict):
  function normalization (line 30) | def normalization(visual_list, visual_len, epsilon=1e-12):
  function create_visual_file (line 42) | def create_visual_file(input_x, visual_list: list, seq_len):
  function visualize (line 59) | def visualize():

FILE: utils/checkmate.py
  class BestCheckpointSaver (line 8) | class BestCheckpointSaver(object):
    method __init__ (line 17) | def __init__(self, save_dir, num_to_keep=1, maximize=True, saver=None):
    method handle (line 44) | def handle(self, value, sess, global_step):
    method _save_best_checkpoints_file (line 87) | def _save_best_checkpoints_file(self, updated_best_checkpoints):
    method _remove_outdated_checkpoint_files (line 91) | def _remove_outdated_checkpoint_files(self, worst_checkpoint):
    method _update_internal_saver_state (line 96) | def _update_internal_saver_state(self, best_checkpoint_list):
    method _load_best_checkpoints_file (line 103) | def _load_best_checkpoints_file(self):
    method _sort (line 108) | def _sort(self, best_checkpoints):
  function get_best_checkpoint (line 118) | def get_best_checkpoint(best_checkpoint_dir, select_maximum_value=True):

FILE: utils/data_helpers.py
  function _option (line 18) | def _option(pattern):
  function logger_fn (line 40) | def logger_fn(name, input_file, level=logging.INFO):
  function tab_printer (line 71) | def tab_printer(args, logger):
  function get_out_dir (line 87) | def get_out_dir(option, logger):
  function get_model_name (line 112) | def get_model_name():
  function create_prediction_file (line 127) | def create_prediction_file(output_file, data_id, true_labels, predict_la...
  function get_onehot_label_threshold (line 155) | def get_onehot_label_threshold(scores, threshold=0.5):
  function get_onehot_label_topk (line 182) | def get_onehot_label_topk(scores, top_num=1):
  function get_label_threshold (line 203) | def get_label_threshold(scores, threshold=0.5):
  function get_label_topk (line 236) | def get_label_topk(scores, top_num=1):
  function create_metadata_file (line 261) | def create_metadata_file(word2vec_file, output_file):
  function load_word2vec_matrix (line 287) | def load_word2vec_matrix(word2vec_file):
  function load_data_and_labels (line 319) | def load_data_and_labels(args, input_file, word2idx: dict):
  function batch_iter (line 387) | def batch_iter(data, batch_size, num_epochs, shuffle=True):

FILE: utils/param_parser.py
  function parameter_parser (line 4) | def parameter_parser():
Condensed preview — 16 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (498K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 860,
    "preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
  },
  {
    "path": ".gitignore",
    "chars": 1554,
    "preview": "### Compiled source ###\n*.com\n*.class\n*.dll\n*.exe\n*.o\n*.so\n\n### Packages ###\n# it's better to unpack these files and com"
  },
  {
    "path": ".travis.yml",
    "chars": 224,
    "preview": "language: python\n\nmatrix:\n  include:\n    - python: 3.6\n\ninstall:\n  - pip install -r requirements.txt\n  - pip install cov"
  },
  {
    "path": "HARNN/test_harnn.py",
    "chars": 8920,
    "preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport os\nimport sys\nimport time\nimport logging\nimport numpy as np\n\nsys."
  },
  {
    "path": "HARNN/text_harnn.py",
    "chars": 15132,
    "preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport tensorflow as tf\n\n\nclass TextHARNN(object):\n    \"\"\"A HARNN for te"
  },
  {
    "path": "HARNN/train_harnn.py",
    "chars": 13771,
    "preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport os\nimport sys\nimport time\nimport logging\n\nsys.path.append('../')\n"
  },
  {
    "path": "HARNN/visualization.py",
    "chars": 6246,
    "preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport sys\nimport time\nimport logging\n\nsys.path.append('../')\nlogging.ge"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 7608,
    "preview": "# Hierarchical Multi-Label Text Classification\n\n[![Python Version](https://img.shields.io/badge/language-python3.6-blue."
  },
  {
    "path": "Usage.md",
    "chars": 4975,
    "preview": "# Usage\n\n## Options\n\n### Input and output options\n\n```\n  --train-file              STR    Training file.      \t\tDefault "
  },
  {
    "path": "data/Test_sample.json",
    "chars": 120049,
    "preview": "{\"id\": \"5973818\", \"title\": [\"method\", \"apparatus\", \"controlling\", \"electrochromic\", \"device\"], \"abstract\": [\"method\", \"c"
  },
  {
    "path": "data/Train_sample.json",
    "chars": 102782,
    "preview": "{\"id\": \"3930316\", \"title\": [\"sighting\", \"firearm\"], \"abstract\": [\"rear\", \"sight\", \"firearm\", \"ha\", \"peephole\", \"device\","
  },
  {
    "path": "data/Validation_sample.json",
    "chars": 120075,
    "preview": "{\"id\": \"6500295\", \"title\": [\"laminate\", \"making\", \"method\"], \"abstract\": [\"hot-melt\", \"web\", \"ha\", \"buffer\", \"adhesive\","
  },
  {
    "path": "utils/checkmate.py",
    "chars": 6193,
    "preview": "import os\nimport glob\nimport json\nimport numpy as np\nimport tensorflow as tf\n\n\nclass BestCheckpointSaver(object):\n    \"\""
  },
  {
    "path": "utils/data_helpers.py",
    "chars": 14205,
    "preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport os\nimport time\nimport heapq\nimport gensim\nimport logging\nimport j"
  },
  {
    "path": "utils/param_parser.py",
    "chars": 4095,
    "preview": "import argparse\n\n\ndef parameter_parser():\n    \"\"\"\n    A method to parse up command line parameters.\n    The default hype"
  }
]

About this extraction

This page contains the full source code of the RandolphVI/Hierarchical-Multi-Label-Text-Classification GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 16 files (427.8 KB), approximately 139.5k tokens, and a symbol index with 34 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!