Files
langchain/docs/modules/document_loaders/examples/word_document.ipynb
T
Matt Robinson 2f15c11b87 feat: document loader for MS Word documents (#1282)
### Summary

Adds a document loader for MS Word Documents. Works with both `.docx`
and `.doc` files as longer as the user has installed
`unstructured>=0.4.11`.

### Testing

The follow workflow test the loader for both `.doc` and `.docx` files
using example docs from the `unstructured` repo.

#### `.docx`

```python
from langchain.document_loaders import UnstructuredWordDocumentLoader

filename = "../unstructured/example-docs/fake.docx"
loader = UnstructuredWordDocumentLoader(filename)
loader.load()
```

#### `.doc`

```python
from langchain.document_loaders import UnstructuredWordDocumentLoader

filename = "../unstructured/example-docs/fake.doc"
loader = UnstructuredWordDocumentLoader(filename)
loader.load()
```
2023-02-24 08:26:19 -08:00

2.8 KiB

Word Documents

This covers how to load Word documents into a document format that we can use downstream.

In [1]:
from langchain.document_loaders import UnstructuredWordDocumentLoader
In [2]:
loader = UnstructuredWordDocumentLoader("fake.docx")
In [3]:
data = loader.load()
In [4]:
data
Out [4]:
[Document(page_content='Lorem ipsum dolor sit amet.', lookup_str='', metadata={'source': 'fake.docx'}, lookup_index=0)]

Retain Elements

Under the hood, Unstructured creates different "elements" for different chunks of text. By default we combine those together, but you can easily keep that separation by specifying mode="elements".

In [5]:
loader = UnstructuredWordDocumentLoader("fake.docx", mode="elements")
In [6]:
data = loader.load()
In [7]:
data[0]
Out [7]:
Document(page_content='Lorem ipsum dolor sit amet.', lookup_str='', metadata={'source': 'fake.docx', 'filename': 'fake.docx', 'category': 'Title'}, lookup_index=0)