Text Classification
Transformers
Safetensors
English
bert
finance
ai-detector
sequence-classification
text-embeddings-inference
Instructions to use msperlin/finbert-ai-detector with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use msperlin/finbert-ai-detector with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="msperlin/finbert-ai-detector")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("msperlin/finbert-ai-detector") model = AutoModelForSequenceClassification.from_pretrained("msperlin/finbert-ai-detector") - Notebooks
- Google Colab
- Kaggle
improved readme
Browse files- README.md +68 -164
- colab-notebooks/testing-fin-ai-detector.ipynb +608 -1
README.md
CHANGED
|
@@ -8,198 +8,102 @@ metrics:
|
|
| 8 |
base_model:
|
| 9 |
- yiyanghkust/finbert-pretrain
|
| 10 |
library_name: transformers
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
---
|
| 12 |
-
# Model Card for Model ID
|
| 13 |
|
| 14 |
-
|
| 15 |
|
| 16 |
-
This
|
| 17 |
|
| 18 |
## Model Details
|
| 19 |
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
-
|
| 23 |
|
|
|
|
| 24 |
|
| 25 |
-
|
| 26 |
-
- **
|
| 27 |
-
- **Funded by [optional]:** [More Information Needed]
|
| 28 |
-
- **Shared by [optional]:** [More Information Needed]
|
| 29 |
-
- **Model type:** [More Information Needed]
|
| 30 |
-
- **Language(s) (NLP):** [More Information Needed]
|
| 31 |
-
- **License:** [More Information Needed]
|
| 32 |
-
- **Finetuned from model [optional]:** [More Information Needed]
|
| 33 |
-
|
| 34 |
-
### Model Sources [optional]
|
| 35 |
-
|
| 36 |
-
<!-- Provide the basic links for the model. -->
|
| 37 |
-
|
| 38 |
-
- **Repository:** [More Information Needed]
|
| 39 |
-
- **Paper [optional]:** [More Information Needed]
|
| 40 |
-
- **Demo [optional]:** [More Information Needed]
|
| 41 |
|
| 42 |
## Uses
|
| 43 |
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
### Direct Use
|
| 47 |
-
|
| 48 |
-
<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
|
| 49 |
-
|
| 50 |
-
[More Information Needed]
|
| 51 |
-
|
| 52 |
-
### Downstream Use [optional]
|
| 53 |
-
|
| 54 |
-
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
|
| 55 |
-
|
| 56 |
-
[More Information Needed]
|
| 57 |
-
|
| 58 |
-
### Out-of-Scope Use
|
| 59 |
-
|
| 60 |
-
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
|
| 61 |
-
|
| 62 |
-
[More Information Needed]
|
| 63 |
-
|
| 64 |
-
## Bias, Risks, and Limitations
|
| 65 |
-
|
| 66 |
-
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
|
| 67 |
-
|
| 68 |
-
[More Information Needed]
|
| 69 |
-
|
| 70 |
-
### Recommendations
|
| 71 |
-
|
| 72 |
-
<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
|
| 73 |
-
|
| 74 |
-
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
|
| 75 |
|
| 76 |
## How to Get Started with the Model
|
| 77 |
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
[More Information Needed]
|
| 81 |
-
|
| 82 |
-
## Training Details
|
| 83 |
-
|
| 84 |
-
### Training Data
|
| 85 |
-
|
| 86 |
-
<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
|
| 87 |
-
|
| 88 |
-
[More Information Needed]
|
| 89 |
-
|
| 90 |
-
### Training Procedure
|
| 91 |
-
|
| 92 |
-
<!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
|
| 93 |
-
|
| 94 |
-
#### Preprocessing [optional]
|
| 95 |
-
|
| 96 |
-
[More Information Needed]
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
#### Training Hyperparameters
|
| 100 |
-
|
| 101 |
-
- **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
|
| 102 |
-
|
| 103 |
-
#### Speeds, Sizes, Times [optional]
|
| 104 |
-
|
| 105 |
-
<!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
|
| 106 |
-
|
| 107 |
-
[More Information Needed]
|
| 108 |
-
|
| 109 |
-
## Evaluation
|
| 110 |
-
|
| 111 |
-
<!-- This section describes the evaluation protocols and provides the results. -->
|
| 112 |
-
|
| 113 |
-
### Testing Data, Factors & Metrics
|
| 114 |
-
|
| 115 |
-
#### Testing Data
|
| 116 |
-
|
| 117 |
-
<!-- This should link to a Dataset Card if possible. -->
|
| 118 |
-
|
| 119 |
-
[More Information Needed]
|
| 120 |
-
|
| 121 |
-
#### Factors
|
| 122 |
-
|
| 123 |
-
<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
|
| 124 |
-
|
| 125 |
-
[More Information Needed]
|
| 126 |
-
|
| 127 |
-
#### Metrics
|
| 128 |
-
|
| 129 |
-
<!-- These are the evaluation metrics being used, ideally with a description of why. -->
|
| 130 |
-
|
| 131 |
-
[More Information Needed]
|
| 132 |
-
|
| 133 |
-
### Results
|
| 134 |
-
|
| 135 |
-
[More Information Needed]
|
| 136 |
-
|
| 137 |
-
#### Summary
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
## Model Examination [optional]
|
| 142 |
-
|
| 143 |
-
<!-- Relevant interpretability work for the model goes here -->
|
| 144 |
-
|
| 145 |
-
[More Information Needed]
|
| 146 |
-
|
| 147 |
-
## Environmental Impact
|
| 148 |
-
|
| 149 |
-
<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
|
| 150 |
-
|
| 151 |
-
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
|
| 152 |
-
|
| 153 |
-
- **Hardware Type:** [More Information Needed]
|
| 154 |
-
- **Hours used:** [More Information Needed]
|
| 155 |
-
- **Cloud Provider:** [More Information Needed]
|
| 156 |
-
- **Compute Region:** [More Information Needed]
|
| 157 |
-
- **Carbon Emitted:** [More Information Needed]
|
| 158 |
-
|
| 159 |
-
## Technical Specifications [optional]
|
| 160 |
-
|
| 161 |
-
### Model Architecture and Objective
|
| 162 |
-
|
| 163 |
-
[More Information Needed]
|
| 164 |
-
|
| 165 |
-
### Compute Infrastructure
|
| 166 |
-
|
| 167 |
-
[More Information Needed]
|
| 168 |
-
|
| 169 |
-
#### Hardware
|
| 170 |
-
|
| 171 |
-
[More Information Needed]
|
| 172 |
-
|
| 173 |
-
#### Software
|
| 174 |
|
| 175 |
-
|
|
|
|
|
|
|
| 176 |
|
| 177 |
-
#
|
|
|
|
|
|
|
| 178 |
|
| 179 |
-
|
|
|
|
|
|
|
| 180 |
|
| 181 |
-
|
|
|
|
| 182 |
|
| 183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 184 |
|
| 185 |
-
|
|
|
|
|
|
|
|
|
|
| 186 |
|
| 187 |
-
|
|
|
|
| 188 |
|
| 189 |
-
|
|
|
|
| 190 |
|
| 191 |
-
|
| 192 |
|
| 193 |
-
|
| 194 |
|
| 195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 196 |
|
| 197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
|
| 199 |
-
|
|
|
|
|
|
|
| 200 |
|
| 201 |
-
|
|
|
|
|
|
|
|
|
|
| 202 |
|
| 203 |
-
##
|
| 204 |
|
| 205 |
-
|
|
|
|
|
|
|
|
|
| 8 |
base_model:
|
| 9 |
- yiyanghkust/finbert-pretrain
|
| 10 |
library_name: transformers
|
| 11 |
+
tags:
|
| 12 |
+
- finance
|
| 13 |
+
- ai-detector
|
| 14 |
+
- sequence-classification
|
| 15 |
---
|
|
|
|
| 16 |
|
| 17 |
+
# FinBERT AI Detector for Financial Texts
|
| 18 |
|
| 19 |
+
This model is a fine-tuned version of `yiyanghkust/finbert-pretrain` designed specifically to detect AI-generated text in financial documents, such as corporate annual reports (e.g., 10-K filings).
|
| 20 |
|
| 21 |
## Model Details
|
| 22 |
|
| 23 |
+
- **Base Model:** `yiyanghkust/finbert-pretrain`
|
| 24 |
+
- **Task:** Sequence Classification (Binary: Human vs. AI-Generated)
|
| 25 |
+
- **Language:** English
|
| 26 |
+
- **License:** MIT
|
| 27 |
|
| 28 |
+
## Training Data and Method
|
| 29 |
|
| 30 |
+
The model was trained on a custom dataset compiled from human-written financial texts (derived from SEC annual reports) and AI-generated equivalents.
|
| 31 |
|
| 32 |
+
- **Data Generation:** Actual human texts from corporate annual reports were compiled. State-of-the-art Large Language Models (LLMs), including OpenAI's ChatGPT, Google's Gemini, and Anthropic's Claude, were then prompted to rewrite these sections or generate similar artificial financial texts.
|
| 33 |
+
- **Training Method:** The base `finbert-pretrain` model—already pre-trained on a large corpus of financial text—was fine-tuned on this mixed dataset to classify whether a given segment of text is human-written or generated by an AI.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
## Uses
|
| 36 |
|
| 37 |
+
This model is intended for researchers, financial analysts, and auditors who want to verify the authenticity of corporate disclosures and determine if a financial text (like an annual report or an earnings call transcript) was written by an AI or a human.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
## How to Get Started with the Model
|
| 40 |
|
| 41 |
+
You can use this model with the `transformers` library. Here is a quick example of how to make predictions using Python and PyTorch:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
+
```python
|
| 44 |
+
import torch
|
| 45 |
+
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
| 46 |
|
| 47 |
+
# Load the model and tokenizer (replace 'username/model-name' with your Hugging Face model ID)
|
| 48 |
+
model_id = "your-username/your-model-name"
|
| 49 |
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 50 |
|
| 51 |
+
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
| 52 |
+
model = AutoModelForSequenceClassification.from_pretrained(model_id).to(device)
|
| 53 |
+
model.eval()
|
| 54 |
|
| 55 |
+
# Sample text to test
|
| 56 |
+
text = "The Tax Cuts and Jobs Act enacted in 2017 in the United States, significantly changed the tax rules applicable to U.S.-domiciled corporations. Changes such as lower corporate tax rates, full expensing for qualified property, taxation of offshore earnings, limitations on interest expense deductions, and changes to the municipal bond tax exemption may impact demand for our products and services."
|
| 57 |
|
| 58 |
+
# Preprocess the input
|
| 59 |
+
inputs = tokenizer(
|
| 60 |
+
text,
|
| 61 |
+
return_tensors="pt",
|
| 62 |
+
truncation=True,
|
| 63 |
+
max_length=512,
|
| 64 |
+
padding=True
|
| 65 |
+
).to(device)
|
| 66 |
|
| 67 |
+
# Run inference
|
| 68 |
+
with torch.no_grad():
|
| 69 |
+
outputs = model(**inputs)
|
| 70 |
+
probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
|
| 71 |
|
| 72 |
+
# Index 1 typically corresponds to "AI-generated" (Verify with model.config.id2label if needed)
|
| 73 |
+
prob_ai = probabilities[0][1].item()
|
| 74 |
|
| 75 |
+
print(f"Probability of being AI-generated: {prob_ai:.2%}")
|
| 76 |
+
```
|
| 77 |
|
| 78 |
+
### Batch Processing Example
|
| 79 |
|
| 80 |
+
For larger text datasets, you can generate predictions in batches to properly utilize GPU acceleration:
|
| 81 |
|
| 82 |
+
```python
|
| 83 |
+
texts = [
|
| 84 |
+
"Company revenue grew by 15% due to increased demand in the European market.",
|
| 85 |
+
"A machine learning model generated this text based on recent financial statements."
|
| 86 |
+
]
|
| 87 |
|
| 88 |
+
inputs = tokenizer(
|
| 89 |
+
texts,
|
| 90 |
+
return_tensors="pt",
|
| 91 |
+
truncation=True,
|
| 92 |
+
max_length=512,
|
| 93 |
+
padding=True
|
| 94 |
+
).to(device)
|
| 95 |
|
| 96 |
+
with torch.no_grad():
|
| 97 |
+
outputs = model(**inputs)
|
| 98 |
+
probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
|
| 99 |
|
| 100 |
+
probs_ai = probabilities[:, 1].tolist()
|
| 101 |
+
for text, prob in zip(texts, probs_ai):
|
| 102 |
+
print(f"AI Probability: {prob:.2%} - Text: {text}")
|
| 103 |
+
```
|
| 104 |
|
| 105 |
+
## Intended Use & Limitations
|
| 106 |
|
| 107 |
+
- **Intended Usage:** Analyzing formal financial reports, press releases, corporate filings, and similar structured financial disclosures.
|
| 108 |
+
- **Limitations:** The model is optimized specifically for the formal, complex tone of financial documents. Its accuracy may be lower when applied to texts outside the financial domain, such as social media posts, casual emails, news articles, or creative text.
|
| 109 |
+
- **Length Constraint:** The underlying standard FinBERT architecture implies a maximum sequence length of 512 tokens. Texts longer than this will be truncated.
|
colab-notebooks/testing-fin-ai-detector.ipynb
CHANGED
|
@@ -1 +1,608 @@
|
|
| 1 |
-
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyMlpd3OM9jBfwFJVtp5BDWy"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"0bcf00c2850b4166b19fa2cc67b2c316":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_f9fc8866d45d4488849542210285a0f6","IPY_MODEL_ac892e73e2f146eb93ae1501a88bd42a","IPY_MODEL_68f442f24a8d4009a7dc629bd8e523ec"],"layout":"IPY_MODEL_b006d255aefa465e9192dcf701587a77"}},"f9fc8866d45d4488849542210285a0f6":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_57fd3787e2cd49cdbbb85d4fbfa289e4","placeholder":"","style":"IPY_MODEL_db5a306e5c8042e89d63144789306505","value":"Loading weights: 100%"}},"ac892e73e2f146eb93ae1501a88bd42a":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_18ddc56f9a3f4ca0bf9f9234ddc1cf43","max":201,"min":0,"orientation":"horizontal","style":"IPY_MODEL_68b3487aabe245c7a868dd04ca88da73","value":201}},"68f442f24a8d4009a7dc629bd8e523ec":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_67061d2557144f488710cebd793bb96b","placeholder":"","style":"IPY_MODEL_f3e0fbc3cf534e3ea70089599ccbde10","value":" 201/201 [00:00<00:00, 513.14it/s, Materializing param=classifier.weight]"}},"b006d255aefa465e9192dcf701587a77":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"57fd3787e2cd49cdbbb85d4fbfa289e4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"db5a306e5c8042e89d63144789306505":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"18ddc56f9a3f4ca0bf9f9234ddc1cf43":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"68b3487aabe245c7a868dd04ca88da73":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"67061d2557144f488710cebd793bb96b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f3e0fbc3cf534e3ea70089599ccbde10":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"cells":[{"cell_type":"code","execution_count":55,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["0bcf00c2850b4166b19fa2cc67b2c316","f9fc8866d45d4488849542210285a0f6","ac892e73e2f146eb93ae1501a88bd42a","68f442f24a8d4009a7dc629bd8e523ec","b006d255aefa465e9192dcf701587a77","57fd3787e2cd49cdbbb85d4fbfa289e4","db5a306e5c8042e89d63144789306505","18ddc56f9a3f4ca0bf9f9234ddc1cf43","68b3487aabe245c7a868dd04ca88da73","67061d2557144f488710cebd793bb96b","f3e0fbc3cf534e3ea70089599ccbde10"]},"id":"DQnP_uKC0HZG","outputId":"89b3ed6b-011f-491d-e006-1aa5fc4335ab","executionInfo":{"status":"ok","timestamp":1774618900263,"user_tz":180,"elapsed":1301,"user":{"displayName":"Marcelo Perlin","userId":"18075542091515264462"}}},"outputs":[{"output_type":"display_data","data":{"text/plain":["Loading weights: 0%| | 0/201 [00:00<?, ?it/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"0bcf00c2850b4166b19fa2cc67b2c316"}},"metadata":{}}],"source":["# Use a pipeline as a high-level helper\n","from transformers import pipeline\n","\n","pipe = pipeline(\"text-classification\", model=\"msperlin/finbert-ai-detector\")"]},{"cell_type":"code","source":["human_text = \"the last trading day of the immediately preceding calendar quarter is greater than or equal to 130% of the conversion price on each applicable trading day; (2) during the five business day period after any 10 consecutive trading day period (the measurement period) in which the trading price per $1,000 principal amount of notes for each trading day of the measurement period was less than 98% of the product of the last reported sale price of our common stock and the conversion rate on each such trading day; or (3) upon 51 the occurrence of specified corporate events. On or after June 1, 2026 and until the close of business on the business day immediately preceding the maturity date, holders may convert their notes at any time, regardless of the foregoing circumstances. Upon conversion, we will pay or deliver, as the case may be, cash, shares of our common stock or a combination of cash and shares of the our common stock, at our election. During the fourth quarter of 2017, none of the conversion conditions were satisfied and as a result, the 2.125% Notes are not eligible for conversion during the first calendar quarter of 2018.We may not redeem the notes prior to the maturity date, and no sinking fund is provided for the notes.\"\n","\n","ai_text= \"The conditions for conversion are met if: (1) the reported closing price of our common stock on the final trading day of the immediately preceding calendar quarter equals or exceeds 130% of the then-effective conversion price on each relevant trading day; (2) during the five business days immediately following any ten consecutive trading day period (hereinafter, the measurement period) wherein the daily trading price per $1,000 principal amount of notes throughout such measurement period was less than 98% of the product of the last reported sale price of our common stock and the conversion rate applicable on each such trading day; or (3) upon the occurrence of certain specified corporate events. Commencing June 1, 2026, and continuing through the close of business on the business day immediately preceding the maturity date, holders shall be entitled to convert their notes at any time, irrespective of the aforementioned conditions. Upon any such conversion, we retain the sole discretion to satisfy the conversion obligation by delivering cash, shares of our common stock, or a combination thereof. Throughout the fourth fiscal quarter of 2017, none of the requisite conversion conditions were met, thereby rendering the 2.125% Notes ineligible for conversion during the first calendar quarter of 2018. The notes are not subject to redemption by the Company prior to their stated maturity date, nor is any sinking fund provision established for them. The initial conversion rate is stipulated at 125.0031 shares of common stock per $1,000 principal amount of notes, corresponding to an initial conversion price of approximately $8.00 per share of common stock.\"\n","\n"],"metadata":{"id":"m-vN1Z6eXGLN","executionInfo":{"status":"ok","timestamp":1774618900269,"user_tz":180,"elapsed":3,"user":{"displayName":"Marcelo Perlin","userId":"18075542091515264462"}}},"execution_count":56,"outputs":[]},{"cell_type":"code","source":["import re\n","\n","def clean_financial_text(text):\n"," # 1. Standardize whitespace\n"," text = re.sub(r'\\\\s+', ' ', text)\n","\n"," # 2. Remove typical PDF conversion artifacts (e.g., Page X of Y)\n"," text = re.sub(r'Page \\d+ of \\d+', '', text, flags=re.IGNORECASE)\n","\n"," # 3. Keep common financial/punctuation non-ASCII, strip the rest\n"," # This regex keeps basic ASCII + common currency + accented Latin-1\n"," # Adjust if you're specifically looking for smart quotes as AI markers\n"," text = \"\".join(i for i in text if ord(i) < 128 or i in \"€£¥©®™áéíóúçÁÉÍÓÚÇ\")\n","\n"," # 20260326 dont converto to lower case\n"," #text = text.lower()\n","\n"," # 4. Strip leading/trailing whitespace\n"," text = text.strip()\n","\n"," return text"],"metadata":{"id":"a9flBHWxZzCW","executionInfo":{"status":"ok","timestamp":1774618900287,"user_tz":180,"elapsed":14,"user":{"displayName":"Marcelo Perlin","userId":"18075542091515264462"}}},"execution_count":57,"outputs":[]},{"cell_type":"code","source":["#human_text = clean_financial_text(human_text)\n","#ai_text = clean_financial_text(ai_text)\n","\n","res_human = pipe(human_text)\n","res_ai = pipe(ai_text)\n","\n","# Label 0 is human written, Label 1 is AI written\n","print(f\"Result for human text: {res_human}\")\n","print(f\"Result for AI text: {res_ai}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"3QOYWfy3Xf2y","executionInfo":{"status":"ok","timestamp":1774618946943,"user_tz":180,"elapsed":1909,"user":{"displayName":"Marcelo Perlin","userId":"18075542091515264462"}},"outputId":"095ccc6b-28c3-4cac-ab05-1b29dd0e92c4"},"execution_count":60,"outputs":[{"output_type":"stream","name":"stdout","text":["Result for human text: [{'label': 'LABEL_0', 'score': 0.8389487862586975}]\n","Result for AI text: [{'label': 'LABEL_1', 'score': 0.9915664792060852}]\n"]}]}]}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 1,
|
| 6 |
+
"metadata": {
|
| 7 |
+
"colab": {
|
| 8 |
+
"base_uri": "https://localhost:8080/",
|
| 9 |
+
"height": 49,
|
| 10 |
+
"referenced_widgets": [
|
| 11 |
+
"0bcf00c2850b4166b19fa2cc67b2c316",
|
| 12 |
+
"f9fc8866d45d4488849542210285a0f6",
|
| 13 |
+
"ac892e73e2f146eb93ae1501a88bd42a",
|
| 14 |
+
"68f442f24a8d4009a7dc629bd8e523ec",
|
| 15 |
+
"b006d255aefa465e9192dcf701587a77",
|
| 16 |
+
"57fd3787e2cd49cdbbb85d4fbfa289e4",
|
| 17 |
+
"db5a306e5c8042e89d63144789306505",
|
| 18 |
+
"18ddc56f9a3f4ca0bf9f9234ddc1cf43",
|
| 19 |
+
"68b3487aabe245c7a868dd04ca88da73",
|
| 20 |
+
"67061d2557144f488710cebd793bb96b",
|
| 21 |
+
"f3e0fbc3cf534e3ea70089599ccbde10"
|
| 22 |
+
]
|
| 23 |
+
},
|
| 24 |
+
"executionInfo": {
|
| 25 |
+
"elapsed": 1301,
|
| 26 |
+
"status": "ok",
|
| 27 |
+
"timestamp": 1774618900263,
|
| 28 |
+
"user": {
|
| 29 |
+
"displayName": "Marcelo Perlin",
|
| 30 |
+
"userId": "18075542091515264462"
|
| 31 |
+
},
|
| 32 |
+
"user_tz": 180
|
| 33 |
+
},
|
| 34 |
+
"id": "DQnP_uKC0HZG",
|
| 35 |
+
"outputId": "89b3ed6b-011f-491d-e006-1aa5fc4335ab"
|
| 36 |
+
},
|
| 37 |
+
"outputs": [
|
| 38 |
+
{
|
| 39 |
+
"name": "stderr",
|
| 40 |
+
"output_type": "stream",
|
| 41 |
+
"text": [
|
| 42 |
+
"/usr/local/lib/python3.12/dist-packages/huggingface_hub/utils/_auth.py:104: UserWarning: \n",
|
| 43 |
+
"Error while fetching `HF_TOKEN` secret value from your vault: 'Requesting secret HF_TOKEN timed out. Secrets can only be fetched when running from the Colab UI.'.\n",
|
| 44 |
+
"You are not authenticated with the Hugging Face Hub in this notebook.\n",
|
| 45 |
+
"If the error persists, please let us know by opening an issue on GitHub (https://github.com/huggingface/huggingface_hub/issues/new).\n",
|
| 46 |
+
" warnings.warn(\n",
|
| 47 |
+
"Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n",
|
| 48 |
+
"WARNING:huggingface_hub.utils._http:Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n"
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"data": {
|
| 53 |
+
"application/vnd.jupyter.widget-view+json": {
|
| 54 |
+
"model_id": "8aaed08ad5424985ab9c188b43296373",
|
| 55 |
+
"version_major": 2,
|
| 56 |
+
"version_minor": 0
|
| 57 |
+
},
|
| 58 |
+
"text/plain": [
|
| 59 |
+
"config.json: 0%| | 0.00/739 [00:00<?, ?B/s]"
|
| 60 |
+
]
|
| 61 |
+
},
|
| 62 |
+
"metadata": {},
|
| 63 |
+
"output_type": "display_data"
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"data": {
|
| 67 |
+
"application/vnd.jupyter.widget-view+json": {
|
| 68 |
+
"model_id": "ab6661749fb04bec9d00cd9ee9254cf1",
|
| 69 |
+
"version_major": 2,
|
| 70 |
+
"version_minor": 0
|
| 71 |
+
},
|
| 72 |
+
"text/plain": [
|
| 73 |
+
"model.safetensors: 0%| | 0.00/439M [00:00<?, ?B/s]"
|
| 74 |
+
]
|
| 75 |
+
},
|
| 76 |
+
"metadata": {},
|
| 77 |
+
"output_type": "display_data"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"data": {
|
| 81 |
+
"application/vnd.jupyter.widget-view+json": {
|
| 82 |
+
"model_id": "b4b6412d0cfa49b2a5aa5020246409f8",
|
| 83 |
+
"version_major": 2,
|
| 84 |
+
"version_minor": 0
|
| 85 |
+
},
|
| 86 |
+
"text/plain": [
|
| 87 |
+
"Loading weights: 0%| | 0/201 [00:00<?, ?it/s]"
|
| 88 |
+
]
|
| 89 |
+
},
|
| 90 |
+
"metadata": {},
|
| 91 |
+
"output_type": "display_data"
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"data": {
|
| 95 |
+
"application/vnd.jupyter.widget-view+json": {
|
| 96 |
+
"model_id": "a7dcfe5b062b43e3a60f4138e63c0da6",
|
| 97 |
+
"version_major": 2,
|
| 98 |
+
"version_minor": 0
|
| 99 |
+
},
|
| 100 |
+
"text/plain": [
|
| 101 |
+
"tokenizer_config.json: 0%| | 0.00/351 [00:00<?, ?B/s]"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
"metadata": {},
|
| 105 |
+
"output_type": "display_data"
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"data": {
|
| 109 |
+
"application/vnd.jupyter.widget-view+json": {
|
| 110 |
+
"model_id": "ad960d7ceac74783bb5e1a449a6af2a3",
|
| 111 |
+
"version_major": 2,
|
| 112 |
+
"version_minor": 0
|
| 113 |
+
},
|
| 114 |
+
"text/plain": [
|
| 115 |
+
"tokenizer.json: 0.00B [00:00, ?B/s]"
|
| 116 |
+
]
|
| 117 |
+
},
|
| 118 |
+
"metadata": {},
|
| 119 |
+
"output_type": "display_data"
|
| 120 |
+
}
|
| 121 |
+
],
|
| 122 |
+
"source": [
|
| 123 |
+
"# Use a pipeline as a high-level helper\n",
|
| 124 |
+
"from transformers import pipeline\n",
|
| 125 |
+
"\n",
|
| 126 |
+
"pipe = pipeline(\"text-classification\", model=\"msperlin/finbert-ai-detector\")"
|
| 127 |
+
]
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"cell_type": "code",
|
| 131 |
+
"execution_count": 2,
|
| 132 |
+
"metadata": {
|
| 133 |
+
"executionInfo": {
|
| 134 |
+
"elapsed": 3,
|
| 135 |
+
"status": "ok",
|
| 136 |
+
"timestamp": 1774618900269,
|
| 137 |
+
"user": {
|
| 138 |
+
"displayName": "Marcelo Perlin",
|
| 139 |
+
"userId": "18075542091515264462"
|
| 140 |
+
},
|
| 141 |
+
"user_tz": 180
|
| 142 |
+
},
|
| 143 |
+
"id": "m-vN1Z6eXGLN"
|
| 144 |
+
},
|
| 145 |
+
"outputs": [],
|
| 146 |
+
"source": [
|
| 147 |
+
"human_text = \"the last trading day of the immediately preceding calendar quarter is greater than or equal to 130% of the conversion price on each applicable trading day; (2) during the five business day period after any 10 consecutive trading day period (the measurement period) in which the trading price per $1,000 principal amount of notes for each trading day of the measurement period was less than 98% of the product of the last reported sale price of our common stock and the conversion rate on each such trading day; or (3) upon 51 the occurrence of specified corporate events. On or after June 1, 2026 and until the close of business on the business day immediately preceding the maturity date, holders may convert their notes at any time, regardless of the foregoing circumstances. Upon conversion, we will pay or deliver, as the case may be, cash, shares of our common stock or a combination of cash and shares of the our common stock, at our election. During the fourth quarter of 2017, none of the conversion conditions were satisfied and as a result, the 2.125% Notes are not eligible for conversion during the first calendar quarter of 2018.We may not redeem the notes prior to the maturity date, and no sinking fund is provided for the notes.\"\n",
|
| 148 |
+
"\n",
|
| 149 |
+
"ai_text= \"The conditions for conversion are met if: (1) the reported closing price of our common stock on the final trading day of the immediately preceding calendar quarter equals or exceeds 130% of the then-effective conversion price on each relevant trading day; (2) during the five business days immediately following any ten consecutive trading day period (hereinafter, the measurement period) wherein the daily trading price per $1,000 principal amount of notes throughout such measurement period was less than 98% of the product of the last reported sale price of our common stock and the conversion rate applicable on each such trading day; or (3) upon the occurrence of certain specified corporate events. Commencing June 1, 2026, and continuing through the close of business on the business day immediately preceding the maturity date, holders shall be entitled to convert their notes at any time, irrespective of the aforementioned conditions. Upon any such conversion, we retain the sole discretion to satisfy the conversion obligation by delivering cash, shares of our common stock, or a combination thereof. Throughout the fourth fiscal quarter of 2017, none of the requisite conversion conditions were met, thereby rendering the 2.125% Notes ineligible for conversion during the first calendar quarter of 2018. The notes are not subject to redemption by the Company prior to their stated maturity date, nor is any sinking fund provision established for them. The initial conversion rate is stipulated at 125.0031 shares of common stock per $1,000 principal amount of notes, corresponding to an initial conversion price of approximately $8.00 per share of common stock.\"\n",
|
| 150 |
+
"\n"
|
| 151 |
+
]
|
| 152 |
+
},
|
| 153 |
+
{
|
| 154 |
+
"cell_type": "code",
|
| 155 |
+
"execution_count": 3,
|
| 156 |
+
"metadata": {
|
| 157 |
+
"executionInfo": {
|
| 158 |
+
"elapsed": 14,
|
| 159 |
+
"status": "ok",
|
| 160 |
+
"timestamp": 1774618900287,
|
| 161 |
+
"user": {
|
| 162 |
+
"displayName": "Marcelo Perlin",
|
| 163 |
+
"userId": "18075542091515264462"
|
| 164 |
+
},
|
| 165 |
+
"user_tz": 180
|
| 166 |
+
},
|
| 167 |
+
"id": "a9flBHWxZzCW"
|
| 168 |
+
},
|
| 169 |
+
"outputs": [],
|
| 170 |
+
"source": [
|
| 171 |
+
"import re\n",
|
| 172 |
+
"\n",
|
| 173 |
+
"def clean_financial_text(text):\n",
|
| 174 |
+
" # 1. Standardize whitespace\n",
|
| 175 |
+
" text = re.sub(r'\\\\s+', ' ', text)\n",
|
| 176 |
+
"\n",
|
| 177 |
+
" # 2. Remove typical PDF conversion artifacts (e.g., Page X of Y)\n",
|
| 178 |
+
" text = re.sub(r'Page \\d+ of \\d+', '', text, flags=re.IGNORECASE)\n",
|
| 179 |
+
"\n",
|
| 180 |
+
" # 3. Keep common financial/punctuation non-ASCII, strip the rest\n",
|
| 181 |
+
" # This regex keeps basic ASCII + common currency + accented Latin-1\n",
|
| 182 |
+
" # Adjust if you're specifically looking for smart quotes as AI markers\n",
|
| 183 |
+
" text = \"\".join(i for i in text if ord(i) < 128 or i in \"€£¥©®™áéíóúçÁÉÍÓÚÇ\")\n",
|
| 184 |
+
"\n",
|
| 185 |
+
" # 20260326 dont converto to lower case\n",
|
| 186 |
+
" #text = text.lower()\n",
|
| 187 |
+
"\n",
|
| 188 |
+
" # 4. Strip leading/trailing whitespace\n",
|
| 189 |
+
" text = text.strip()\n",
|
| 190 |
+
"\n",
|
| 191 |
+
" return text"
|
| 192 |
+
]
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"cell_type": "code",
|
| 196 |
+
"execution_count": 7,
|
| 197 |
+
"metadata": {
|
| 198 |
+
"colab": {
|
| 199 |
+
"base_uri": "https://localhost:8080/"
|
| 200 |
+
},
|
| 201 |
+
"executionInfo": {
|
| 202 |
+
"elapsed": 1909,
|
| 203 |
+
"status": "ok",
|
| 204 |
+
"timestamp": 1774618946943,
|
| 205 |
+
"user": {
|
| 206 |
+
"displayName": "Marcelo Perlin",
|
| 207 |
+
"userId": "18075542091515264462"
|
| 208 |
+
},
|
| 209 |
+
"user_tz": 180
|
| 210 |
+
},
|
| 211 |
+
"id": "3QOYWfy3Xf2y",
|
| 212 |
+
"outputId": "095ccc6b-28c3-4cac-ab05-1b29dd0e92c4"
|
| 213 |
+
},
|
| 214 |
+
"outputs": [
|
| 215 |
+
{
|
| 216 |
+
"name": "stdout",
|
| 217 |
+
"output_type": "stream",
|
| 218 |
+
"text": [
|
| 219 |
+
"Result for human text: [{'label': 'LABEL_0', 'score': 0.8389487266540527}]\n",
|
| 220 |
+
"Result for AI text: [{'label': 'LABEL_1', 'score': 0.9915664792060852}]\n"
|
| 221 |
+
]
|
| 222 |
+
}
|
| 223 |
+
],
|
| 224 |
+
"source": [
|
| 225 |
+
"#human_text = clean_financial_text(human_text)\n",
|
| 226 |
+
"#ai_text = clean_financial_text(ai_text)\n",
|
| 227 |
+
"\n",
|
| 228 |
+
"res_human = pipe(human_text)\n",
|
| 229 |
+
"res_ai = pipe(ai_text)\n",
|
| 230 |
+
"\n",
|
| 231 |
+
"# Label 0 is human written, Label 1 is AI written\n",
|
| 232 |
+
"print(f\"Result for human text: {res_human}\")\n",
|
| 233 |
+
"print(f\"Result for AI text: {res_ai}\")"
|
| 234 |
+
]
|
| 235 |
+
}
|
| 236 |
+
],
|
| 237 |
+
"metadata": {
|
| 238 |
+
"colab": {
|
| 239 |
+
"authorship_tag": "ABX9TyMlpd3OM9jBfwFJVtp5BDWy",
|
| 240 |
+
"provenance": []
|
| 241 |
+
},
|
| 242 |
+
"kernelspec": {
|
| 243 |
+
"display_name": "Python 3 (ipykernel)",
|
| 244 |
+
"language": "python",
|
| 245 |
+
"name": "python3"
|
| 246 |
+
},
|
| 247 |
+
"language_info": {
|
| 248 |
+
"codemirror_mode": {
|
| 249 |
+
"name": "ipython",
|
| 250 |
+
"version": 3
|
| 251 |
+
},
|
| 252 |
+
"file_extension": ".py",
|
| 253 |
+
"mimetype": "text/x-python",
|
| 254 |
+
"name": "python",
|
| 255 |
+
"nbconvert_exporter": "python",
|
| 256 |
+
"pygments_lexer": "ipython3",
|
| 257 |
+
"version": "3.12.13"
|
| 258 |
+
},
|
| 259 |
+
"widgets": {
|
| 260 |
+
"application/vnd.jupyter.widget-state+json": {
|
| 261 |
+
"0bcf00c2850b4166b19fa2cc67b2c316": {
|
| 262 |
+
"model_module": "@jupyter-widgets/controls",
|
| 263 |
+
"model_module_version": "1.5.0",
|
| 264 |
+
"model_name": "HBoxModel",
|
| 265 |
+
"state": {
|
| 266 |
+
"_dom_classes": [],
|
| 267 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 268 |
+
"_model_module_version": "1.5.0",
|
| 269 |
+
"_model_name": "HBoxModel",
|
| 270 |
+
"_view_count": null,
|
| 271 |
+
"_view_module": "@jupyter-widgets/controls",
|
| 272 |
+
"_view_module_version": "1.5.0",
|
| 273 |
+
"_view_name": "HBoxView",
|
| 274 |
+
"box_style": "",
|
| 275 |
+
"children": [
|
| 276 |
+
"IPY_MODEL_f9fc8866d45d4488849542210285a0f6",
|
| 277 |
+
"IPY_MODEL_ac892e73e2f146eb93ae1501a88bd42a",
|
| 278 |
+
"IPY_MODEL_68f442f24a8d4009a7dc629bd8e523ec"
|
| 279 |
+
],
|
| 280 |
+
"layout": "IPY_MODEL_b006d255aefa465e9192dcf701587a77"
|
| 281 |
+
}
|
| 282 |
+
},
|
| 283 |
+
"18ddc56f9a3f4ca0bf9f9234ddc1cf43": {
|
| 284 |
+
"model_module": "@jupyter-widgets/base",
|
| 285 |
+
"model_module_version": "1.2.0",
|
| 286 |
+
"model_name": "LayoutModel",
|
| 287 |
+
"state": {
|
| 288 |
+
"_model_module": "@jupyter-widgets/base",
|
| 289 |
+
"_model_module_version": "1.2.0",
|
| 290 |
+
"_model_name": "LayoutModel",
|
| 291 |
+
"_view_count": null,
|
| 292 |
+
"_view_module": "@jupyter-widgets/base",
|
| 293 |
+
"_view_module_version": "1.2.0",
|
| 294 |
+
"_view_name": "LayoutView",
|
| 295 |
+
"align_content": null,
|
| 296 |
+
"align_items": null,
|
| 297 |
+
"align_self": null,
|
| 298 |
+
"border": null,
|
| 299 |
+
"bottom": null,
|
| 300 |
+
"display": null,
|
| 301 |
+
"flex": null,
|
| 302 |
+
"flex_flow": null,
|
| 303 |
+
"grid_area": null,
|
| 304 |
+
"grid_auto_columns": null,
|
| 305 |
+
"grid_auto_flow": null,
|
| 306 |
+
"grid_auto_rows": null,
|
| 307 |
+
"grid_column": null,
|
| 308 |
+
"grid_gap": null,
|
| 309 |
+
"grid_row": null,
|
| 310 |
+
"grid_template_areas": null,
|
| 311 |
+
"grid_template_columns": null,
|
| 312 |
+
"grid_template_rows": null,
|
| 313 |
+
"height": null,
|
| 314 |
+
"justify_content": null,
|
| 315 |
+
"justify_items": null,
|
| 316 |
+
"left": null,
|
| 317 |
+
"margin": null,
|
| 318 |
+
"max_height": null,
|
| 319 |
+
"max_width": null,
|
| 320 |
+
"min_height": null,
|
| 321 |
+
"min_width": null,
|
| 322 |
+
"object_fit": null,
|
| 323 |
+
"object_position": null,
|
| 324 |
+
"order": null,
|
| 325 |
+
"overflow": null,
|
| 326 |
+
"overflow_x": null,
|
| 327 |
+
"overflow_y": null,
|
| 328 |
+
"padding": null,
|
| 329 |
+
"right": null,
|
| 330 |
+
"top": null,
|
| 331 |
+
"visibility": null,
|
| 332 |
+
"width": null
|
| 333 |
+
}
|
| 334 |
+
},
|
| 335 |
+
"57fd3787e2cd49cdbbb85d4fbfa289e4": {
|
| 336 |
+
"model_module": "@jupyter-widgets/base",
|
| 337 |
+
"model_module_version": "1.2.0",
|
| 338 |
+
"model_name": "LayoutModel",
|
| 339 |
+
"state": {
|
| 340 |
+
"_model_module": "@jupyter-widgets/base",
|
| 341 |
+
"_model_module_version": "1.2.0",
|
| 342 |
+
"_model_name": "LayoutModel",
|
| 343 |
+
"_view_count": null,
|
| 344 |
+
"_view_module": "@jupyter-widgets/base",
|
| 345 |
+
"_view_module_version": "1.2.0",
|
| 346 |
+
"_view_name": "LayoutView",
|
| 347 |
+
"align_content": null,
|
| 348 |
+
"align_items": null,
|
| 349 |
+
"align_self": null,
|
| 350 |
+
"border": null,
|
| 351 |
+
"bottom": null,
|
| 352 |
+
"display": null,
|
| 353 |
+
"flex": null,
|
| 354 |
+
"flex_flow": null,
|
| 355 |
+
"grid_area": null,
|
| 356 |
+
"grid_auto_columns": null,
|
| 357 |
+
"grid_auto_flow": null,
|
| 358 |
+
"grid_auto_rows": null,
|
| 359 |
+
"grid_column": null,
|
| 360 |
+
"grid_gap": null,
|
| 361 |
+
"grid_row": null,
|
| 362 |
+
"grid_template_areas": null,
|
| 363 |
+
"grid_template_columns": null,
|
| 364 |
+
"grid_template_rows": null,
|
| 365 |
+
"height": null,
|
| 366 |
+
"justify_content": null,
|
| 367 |
+
"justify_items": null,
|
| 368 |
+
"left": null,
|
| 369 |
+
"margin": null,
|
| 370 |
+
"max_height": null,
|
| 371 |
+
"max_width": null,
|
| 372 |
+
"min_height": null,
|
| 373 |
+
"min_width": null,
|
| 374 |
+
"object_fit": null,
|
| 375 |
+
"object_position": null,
|
| 376 |
+
"order": null,
|
| 377 |
+
"overflow": null,
|
| 378 |
+
"overflow_x": null,
|
| 379 |
+
"overflow_y": null,
|
| 380 |
+
"padding": null,
|
| 381 |
+
"right": null,
|
| 382 |
+
"top": null,
|
| 383 |
+
"visibility": null,
|
| 384 |
+
"width": null
|
| 385 |
+
}
|
| 386 |
+
},
|
| 387 |
+
"67061d2557144f488710cebd793bb96b": {
|
| 388 |
+
"model_module": "@jupyter-widgets/base",
|
| 389 |
+
"model_module_version": "1.2.0",
|
| 390 |
+
"model_name": "LayoutModel",
|
| 391 |
+
"state": {
|
| 392 |
+
"_model_module": "@jupyter-widgets/base",
|
| 393 |
+
"_model_module_version": "1.2.0",
|
| 394 |
+
"_model_name": "LayoutModel",
|
| 395 |
+
"_view_count": null,
|
| 396 |
+
"_view_module": "@jupyter-widgets/base",
|
| 397 |
+
"_view_module_version": "1.2.0",
|
| 398 |
+
"_view_name": "LayoutView",
|
| 399 |
+
"align_content": null,
|
| 400 |
+
"align_items": null,
|
| 401 |
+
"align_self": null,
|
| 402 |
+
"border": null,
|
| 403 |
+
"bottom": null,
|
| 404 |
+
"display": null,
|
| 405 |
+
"flex": null,
|
| 406 |
+
"flex_flow": null,
|
| 407 |
+
"grid_area": null,
|
| 408 |
+
"grid_auto_columns": null,
|
| 409 |
+
"grid_auto_flow": null,
|
| 410 |
+
"grid_auto_rows": null,
|
| 411 |
+
"grid_column": null,
|
| 412 |
+
"grid_gap": null,
|
| 413 |
+
"grid_row": null,
|
| 414 |
+
"grid_template_areas": null,
|
| 415 |
+
"grid_template_columns": null,
|
| 416 |
+
"grid_template_rows": null,
|
| 417 |
+
"height": null,
|
| 418 |
+
"justify_content": null,
|
| 419 |
+
"justify_items": null,
|
| 420 |
+
"left": null,
|
| 421 |
+
"margin": null,
|
| 422 |
+
"max_height": null,
|
| 423 |
+
"max_width": null,
|
| 424 |
+
"min_height": null,
|
| 425 |
+
"min_width": null,
|
| 426 |
+
"object_fit": null,
|
| 427 |
+
"object_position": null,
|
| 428 |
+
"order": null,
|
| 429 |
+
"overflow": null,
|
| 430 |
+
"overflow_x": null,
|
| 431 |
+
"overflow_y": null,
|
| 432 |
+
"padding": null,
|
| 433 |
+
"right": null,
|
| 434 |
+
"top": null,
|
| 435 |
+
"visibility": null,
|
| 436 |
+
"width": null
|
| 437 |
+
}
|
| 438 |
+
},
|
| 439 |
+
"68b3487aabe245c7a868dd04ca88da73": {
|
| 440 |
+
"model_module": "@jupyter-widgets/controls",
|
| 441 |
+
"model_module_version": "1.5.0",
|
| 442 |
+
"model_name": "ProgressStyleModel",
|
| 443 |
+
"state": {
|
| 444 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 445 |
+
"_model_module_version": "1.5.0",
|
| 446 |
+
"_model_name": "ProgressStyleModel",
|
| 447 |
+
"_view_count": null,
|
| 448 |
+
"_view_module": "@jupyter-widgets/base",
|
| 449 |
+
"_view_module_version": "1.2.0",
|
| 450 |
+
"_view_name": "StyleView",
|
| 451 |
+
"bar_color": null,
|
| 452 |
+
"description_width": ""
|
| 453 |
+
}
|
| 454 |
+
},
|
| 455 |
+
"68f442f24a8d4009a7dc629bd8e523ec": {
|
| 456 |
+
"model_module": "@jupyter-widgets/controls",
|
| 457 |
+
"model_module_version": "1.5.0",
|
| 458 |
+
"model_name": "HTMLModel",
|
| 459 |
+
"state": {
|
| 460 |
+
"_dom_classes": [],
|
| 461 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 462 |
+
"_model_module_version": "1.5.0",
|
| 463 |
+
"_model_name": "HTMLModel",
|
| 464 |
+
"_view_count": null,
|
| 465 |
+
"_view_module": "@jupyter-widgets/controls",
|
| 466 |
+
"_view_module_version": "1.5.0",
|
| 467 |
+
"_view_name": "HTMLView",
|
| 468 |
+
"description": "",
|
| 469 |
+
"description_tooltip": null,
|
| 470 |
+
"layout": "IPY_MODEL_67061d2557144f488710cebd793bb96b",
|
| 471 |
+
"placeholder": "",
|
| 472 |
+
"style": "IPY_MODEL_f3e0fbc3cf534e3ea70089599ccbde10",
|
| 473 |
+
"value": " 201/201 [00:00<00:00, 513.14it/s, Materializing param=classifier.weight]"
|
| 474 |
+
}
|
| 475 |
+
},
|
| 476 |
+
"ac892e73e2f146eb93ae1501a88bd42a": {
|
| 477 |
+
"model_module": "@jupyter-widgets/controls",
|
| 478 |
+
"model_module_version": "1.5.0",
|
| 479 |
+
"model_name": "FloatProgressModel",
|
| 480 |
+
"state": {
|
| 481 |
+
"_dom_classes": [],
|
| 482 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 483 |
+
"_model_module_version": "1.5.0",
|
| 484 |
+
"_model_name": "FloatProgressModel",
|
| 485 |
+
"_view_count": null,
|
| 486 |
+
"_view_module": "@jupyter-widgets/controls",
|
| 487 |
+
"_view_module_version": "1.5.0",
|
| 488 |
+
"_view_name": "ProgressView",
|
| 489 |
+
"bar_style": "success",
|
| 490 |
+
"description": "",
|
| 491 |
+
"description_tooltip": null,
|
| 492 |
+
"layout": "IPY_MODEL_18ddc56f9a3f4ca0bf9f9234ddc1cf43",
|
| 493 |
+
"max": 201,
|
| 494 |
+
"min": 0,
|
| 495 |
+
"orientation": "horizontal",
|
| 496 |
+
"style": "IPY_MODEL_68b3487aabe245c7a868dd04ca88da73",
|
| 497 |
+
"value": 201
|
| 498 |
+
}
|
| 499 |
+
},
|
| 500 |
+
"b006d255aefa465e9192dcf701587a77": {
|
| 501 |
+
"model_module": "@jupyter-widgets/base",
|
| 502 |
+
"model_module_version": "1.2.0",
|
| 503 |
+
"model_name": "LayoutModel",
|
| 504 |
+
"state": {
|
| 505 |
+
"_model_module": "@jupyter-widgets/base",
|
| 506 |
+
"_model_module_version": "1.2.0",
|
| 507 |
+
"_model_name": "LayoutModel",
|
| 508 |
+
"_view_count": null,
|
| 509 |
+
"_view_module": "@jupyter-widgets/base",
|
| 510 |
+
"_view_module_version": "1.2.0",
|
| 511 |
+
"_view_name": "LayoutView",
|
| 512 |
+
"align_content": null,
|
| 513 |
+
"align_items": null,
|
| 514 |
+
"align_self": null,
|
| 515 |
+
"border": null,
|
| 516 |
+
"bottom": null,
|
| 517 |
+
"display": null,
|
| 518 |
+
"flex": null,
|
| 519 |
+
"flex_flow": null,
|
| 520 |
+
"grid_area": null,
|
| 521 |
+
"grid_auto_columns": null,
|
| 522 |
+
"grid_auto_flow": null,
|
| 523 |
+
"grid_auto_rows": null,
|
| 524 |
+
"grid_column": null,
|
| 525 |
+
"grid_gap": null,
|
| 526 |
+
"grid_row": null,
|
| 527 |
+
"grid_template_areas": null,
|
| 528 |
+
"grid_template_columns": null,
|
| 529 |
+
"grid_template_rows": null,
|
| 530 |
+
"height": null,
|
| 531 |
+
"justify_content": null,
|
| 532 |
+
"justify_items": null,
|
| 533 |
+
"left": null,
|
| 534 |
+
"margin": null,
|
| 535 |
+
"max_height": null,
|
| 536 |
+
"max_width": null,
|
| 537 |
+
"min_height": null,
|
| 538 |
+
"min_width": null,
|
| 539 |
+
"object_fit": null,
|
| 540 |
+
"object_position": null,
|
| 541 |
+
"order": null,
|
| 542 |
+
"overflow": null,
|
| 543 |
+
"overflow_x": null,
|
| 544 |
+
"overflow_y": null,
|
| 545 |
+
"padding": null,
|
| 546 |
+
"right": null,
|
| 547 |
+
"top": null,
|
| 548 |
+
"visibility": null,
|
| 549 |
+
"width": null
|
| 550 |
+
}
|
| 551 |
+
},
|
| 552 |
+
"db5a306e5c8042e89d63144789306505": {
|
| 553 |
+
"model_module": "@jupyter-widgets/controls",
|
| 554 |
+
"model_module_version": "1.5.0",
|
| 555 |
+
"model_name": "DescriptionStyleModel",
|
| 556 |
+
"state": {
|
| 557 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 558 |
+
"_model_module_version": "1.5.0",
|
| 559 |
+
"_model_name": "DescriptionStyleModel",
|
| 560 |
+
"_view_count": null,
|
| 561 |
+
"_view_module": "@jupyter-widgets/base",
|
| 562 |
+
"_view_module_version": "1.2.0",
|
| 563 |
+
"_view_name": "StyleView",
|
| 564 |
+
"description_width": ""
|
| 565 |
+
}
|
| 566 |
+
},
|
| 567 |
+
"f3e0fbc3cf534e3ea70089599ccbde10": {
|
| 568 |
+
"model_module": "@jupyter-widgets/controls",
|
| 569 |
+
"model_module_version": "1.5.0",
|
| 570 |
+
"model_name": "DescriptionStyleModel",
|
| 571 |
+
"state": {
|
| 572 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 573 |
+
"_model_module_version": "1.5.0",
|
| 574 |
+
"_model_name": "DescriptionStyleModel",
|
| 575 |
+
"_view_count": null,
|
| 576 |
+
"_view_module": "@jupyter-widgets/base",
|
| 577 |
+
"_view_module_version": "1.2.0",
|
| 578 |
+
"_view_name": "StyleView",
|
| 579 |
+
"description_width": ""
|
| 580 |
+
}
|
| 581 |
+
},
|
| 582 |
+
"f9fc8866d45d4488849542210285a0f6": {
|
| 583 |
+
"model_module": "@jupyter-widgets/controls",
|
| 584 |
+
"model_module_version": "1.5.0",
|
| 585 |
+
"model_name": "HTMLModel",
|
| 586 |
+
"state": {
|
| 587 |
+
"_dom_classes": [],
|
| 588 |
+
"_model_module": "@jupyter-widgets/controls",
|
| 589 |
+
"_model_module_version": "1.5.0",
|
| 590 |
+
"_model_name": "HTMLModel",
|
| 591 |
+
"_view_count": null,
|
| 592 |
+
"_view_module": "@jupyter-widgets/controls",
|
| 593 |
+
"_view_module_version": "1.5.0",
|
| 594 |
+
"_view_name": "HTMLView",
|
| 595 |
+
"description": "",
|
| 596 |
+
"description_tooltip": null,
|
| 597 |
+
"layout": "IPY_MODEL_57fd3787e2cd49cdbbb85d4fbfa289e4",
|
| 598 |
+
"placeholder": "",
|
| 599 |
+
"style": "IPY_MODEL_db5a306e5c8042e89d63144789306505",
|
| 600 |
+
"value": "Loading weights: 100%"
|
| 601 |
+
}
|
| 602 |
+
}
|
| 603 |
+
}
|
| 604 |
+
}
|
| 605 |
+
},
|
| 606 |
+
"nbformat": 4,
|
| 607 |
+
"nbformat_minor": 0
|
| 608 |
+
}
|