To solve this problem, we need to convert the natural language description into a symbolic representation and then translate it into Gurobi code. 

Let's break down the problem:

- The fishing company operates in two areas: Pacific and Atlantic oceans.
- The company must provide 18 tons of fish, 10 tons of crab, and 5 tons of lobster in a week.
- It costs $5000 per day to operate in the Pacific ocean and $7000 per day to operate in the Atlantic ocean.
- In a day's operation, the catch is as follows:
  - Pacific: 5 tons of fish, 2 tons of crab, 0.5 tons of lobster.
  - Atlantic: 4 tons of fish, 3 tons of crab, 1 ton of lobster.

We can define our variables as follows:
- $x_1$: Number of days to operate in the Pacific ocean.
- $x_2$: Number of days to operate in the Atlantic ocean.

The objective function is to minimize the total cost, which can be represented as:
\[5000x_1 + 7000x_2\]

The constraints are:
- Total fish catch: $5x_1 + 4x_2 \geq 18$
- Total crab catch: $2x_1 + 3x_2 \geq 10$
- Total lobster catch: $0.5x_1 + x_2 \geq 5$
- Non-negativity constraints: $x_1 \geq 0$, $x_2 \geq 0$

Here is the symbolic representation of the problem:
```json
{
  'sym_variables': [('x1', 'Number of days to operate in the Pacific ocean'), 
                    ('x2', 'Number of days to operate in the Atlantic ocean')],
  'objective_function': '5000*x1 + 7000*x2',
  'constraints': ['5*x1 + 4*x2 >= 18', '2*x1 + 3*x2 >= 10', '0.5*x1 + x2 >= 5', 'x1 >= 0', 'x2 >= 0']
}
```

Now, let's write the Gurobi code to solve this problem:
```python
from gurobipy import *

# Create a new model
model = Model("Fishing_Optimization")

# Define variables
x1 = model.addVar(lb=0, vtype=GRB.CONTINUOUS, name="Pacific_Days")
x2 = model.addVar(lb=0, vtype=GRB.CONTINUOUS, name="Atlantic_Days")

# Set objective function
model.setObjective(5000*x1 + 7000*x2, GRB.MINIMIZE)

# Add constraints
model.addConstr(5*x1 + 4*x2 >= 18, "Fish_Catch")
model.addConstr(2*x1 + 3*x2 >= 10, "Crab_Catch")
model.addConstr(0.5*x1 + x2 >= 5, "Lobster_Catch")

# Optimize model
model.optimize()

# Print results
if model.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Pacific Days: {x1.x}")
    print(f"Atlantic Days: {x2.x}")
    print(f"Total Cost: {model.objVal}")
else:
    print("No optimal solution found")
```